﻿using System;
using System.Collections;
using System.Configuration;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using Banesco.Integracion.Logica;
using Banesco.Entidades;
using WSIntegracionCoreBancario.CustomerService;
using System.Web.Script.Services;
using System.Collections.Generic;
using System.Reflection;
using System.Xml.Serialization;

namespace WSIntegracionCoreBancario
{
    /// <summary>
    /// Summary description for IntegracionAccountServices
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [ScriptService]
    public class IntegracionAccountServices : System.Web.Services.WebService
    {
        #region Old Version Methods-- This is obsolete

        //#region Old Methods
        ////[WebMethod]
        ////objAMInput.HelloWorld()
        ////{
        ////    return "Hello World";
        ////}

        //[WebMethod]
        //public Mensaje ConsultarInformacionClienteIBS(string Usuario, string CustomerID, ref IntegracionInformacionCustomerServices InformacionCliente)//, IntegracionInformacionCustomerServices InformacionCliente)
        //{
        //    Mensaje retMensaje = new Mensaje();
        //    WSIntegracionCoreBancario.CustomerServices.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerServices.CustomerService();
        //    WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCM;
        //    try
        //    {
        //        //IntegracionInformacionCustomerServices InformacionCliente = new IntegracionInformacionCustomerServices();

        //        objPCM = new WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage();
        //        //objCustomerServices.Url = ConfigurationManager.AppSettings["WSIntegracionCoreBancario.CustumerServices.Url"].ToString();

        //        objPCM = objCustomerServices.personalCustomerInquiry(Usuario, CustomerID);

        //        InformacionCliente.birthDate = objPCM.birthDate.ToString();
        //        InformacionCliente.businessCode = objPCM.businessCode.ToString();
        //        InformacionCliente.bussinesCodeDesc = objPCM.bussinesCodeDesc.ToString();
        //        InformacionCliente.celularPhoneNum = objPCM.celularPhoneNum.ToString();
        //        InformacionCliente.clientClass = objPCM.clientClass.ToString();
        //        InformacionCliente.clientStatus = objPCM.clientStatus.ToString();
        //        InformacionCliente.clientType = objPCM.clientType.ToString();
        //        InformacionCliente.companyAddress = objPCM.companyAddress.ToString();
        //        InformacionCliente.companyInfo = objPCM.companyInfo.ToString();
        //        InformacionCliente.companyName = objPCM.companyName.ToString();
        //        InformacionCliente.companyType = objPCM.companyType.ToString();
        //        InformacionCliente.correg = objPCM.correg.ToString();
        //        InformacionCliente.corregDesc = objPCM.corregDesc.ToString();
        //        InformacionCliente.country = objPCM.country.ToString();
        //        InformacionCliente.countryDesc = objPCM.countryDesc.ToString();
        //        InformacionCliente.currentIncome = objPCM.currentIncome.ToString();
        //        InformacionCliente.currentJEntryDate = objPCM.currentJEntryDate.ToString();
        //        InformacionCliente.customerNumber = objPCM.customerNumber.ToString();
        //        InformacionCliente.dependents = objPCM.dependents.ToString();
        //        InformacionCliente.discountCompanyCode = objPCM.discountCompanyCode.ToString();
        //        InformacionCliente.discountCompanyCodeDsc = objPCM.discountCompanyCodeDsc.ToString();
        //        InformacionCliente.distrit = objPCM.distrit.ToString();
        //        InformacionCliente.distritDesc = objPCM.distritDesc.ToString();
        //        InformacionCliente.educationLevel = objPCM.educationLevel.ToString();
        //        InformacionCliente.educationLevelDsc = objPCM.educationLevelDsc.ToString();
        //        InformacionCliente.email = objPCM.email.ToString();
        //        InformacionCliente.employmentTime = objPCM.employmentTime.ToString();
        //        InformacionCliente.familiarRelationType = objPCM.familiarRelationType.ToString();
        //        InformacionCliente.faxNumber = objPCM.faxNumber.ToString();
        //        InformacionCliente.firstContactDate = objPCM.firstContactDate.ToString();
        //        InformacionCliente.firstLastName = objPCM.firstLastName.ToString();
        //        InformacionCliente.firstName = objPCM.firstName.ToString();
        //        InformacionCliente.groupNumber = objPCM.groupNumber.ToString();
        //        InformacionCliente.houseNumber = objPCM.houseNumber.ToString();
        //        InformacionCliente.housePhoneNum = objPCM.housePhoneNum.ToString();
        //        InformacionCliente.idCountry = objPCM.idCountry.ToString();
        //        InformacionCliente.idNumber = objPCM.idNumber.ToString();
        //        InformacionCliente.idType = objPCM.idType.ToString();
        //        InformacionCliente.idTypeDesc = objPCM.idTypeDesc.ToString();
        //        InformacionCliente.incomeSource = objPCM.incomeSource.ToString();
        //        InformacionCliente.incomeSourceDsc = objPCM.incomeSourceDsc.ToString();
        //        InformacionCliente.industryCode = objPCM.industryCode.ToString();
        //        InformacionCliente.industryCodeDesc = objPCM.industryCodeDesc.ToString();
        //        InformacionCliente.inquiryLevel = objPCM.inquiryLevel.ToString();
        //        InformacionCliente.language = objPCM.language.ToString();
        //        InformacionCliente.legalName = objPCM.legalName.ToString();
        //        InformacionCliente.legalStatus = objPCM.legalStatus.ToString();
        //        InformacionCliente.mainOfficer = objPCM.mainOfficer.ToString();
        //        InformacionCliente.mainOfficerDesc = objPCM.mainOfficerDesc.ToString();
        //        InformacionCliente.marriedName = objPCM.marriedName.ToString();
        //        InformacionCliente.nacionality = objPCM.nacionality.ToString();
        //        InformacionCliente.NacionalityDesc = objPCM.NacionalityDesc.ToString();
        //        InformacionCliente.officePhoneNum = objPCM.officePhoneNum.ToString();
        //        InformacionCliente.perRefBuildNum1 = objPCM.perRefBuildNum1.ToString();
        //        InformacionCliente.perRefBuildNum2 = objPCM.perRefBuildNum2.ToString();
        //        InformacionCliente.perRefCorreg1 = objPCM.perRefCorreg1.ToString();
        //        InformacionCliente.perRefCorreg1Dsc = objPCM.perRefCorreg1Dsc.ToString();
        //        InformacionCliente.perRefCorreg2 = objPCM.perRefCorreg2.ToString();
        //        InformacionCliente.perRefCorreg2Dsc = objPCM.perRefCorreg2Dsc.ToString();
        //        InformacionCliente.perRefCountry1 = objPCM.perRefCountry1.ToString();
        //        InformacionCliente.perRefCountry2 = objPCM.perRefCountry2.ToString();
        //        InformacionCliente.perRefDistrit1 = objPCM.perRefDistrit1.ToString();
        //        InformacionCliente.perRefDistrit1Dsc = objPCM.perRefDistrit1Dsc.ToString();
        //        InformacionCliente.perRefDistrit2 = objPCM.perRefDistrit2.ToString();
        //        InformacionCliente.perRefDistrit2Dsc = objPCM.perRefDistrit2Dsc.ToString();
        //        InformacionCliente.perRefHouseNum1 = objPCM.perRefHouseNum1.ToString();
        //        InformacionCliente.perRefHouseNum2 = objPCM.perRefHouseNum2.ToString();
        //        InformacionCliente.perRefName1 = objPCM.perRefName1.ToString();
        //        InformacionCliente.perRefName2 = objPCM.perRefName2.ToString();
        //        InformacionCliente.perRefPhoneNum1 = objPCM.perRefPhoneNum1.ToString();
        //        InformacionCliente.perRefPhoneNum2 = objPCM.perRefPhoneNum2.ToString();
        //        InformacionCliente.perRefPoBox1 = objPCM.perRefPoBox1.ToString();
        //        InformacionCliente.perRefPoBox2 = objPCM.perRefPoBox2.ToString();
        //        InformacionCliente.perRefProvince1 = objPCM.perRefProvince1.ToString();
        //        InformacionCliente.perRefProvince1Dsc = objPCM.perRefProvince1Dsc.ToString();
        //        InformacionCliente.perRefProvince2 = objPCM.perRefProvince2.ToString();
        //        InformacionCliente.perRefProvince2Dsc = objPCM.perRefProvince2Dsc.ToString();
        //        InformacionCliente.perRefStreet1 = objPCM.perRefStreet1.ToString();
        //        InformacionCliente.perRefStreet2 = objPCM.perRefStreet2.ToString();
        //        InformacionCliente.perRefZipCode1 = objPCM.perRefZipCode1.ToString();
        //        InformacionCliente.perRefZipCode2 = objPCM.perRefZipCode2.ToString();
        //        InformacionCliente.poBox = objPCM.poBox.ToString();
        //        InformacionCliente.position = objPCM.position.ToString();
        //        InformacionCliente.positionDsc = objPCM.positionDsc.ToString();
        //        InformacionCliente.previusJEntryDate = objPCM.previusJEntryDate.ToString();
        //        InformacionCliente.profession = objPCM.profession.ToString();
        //        InformacionCliente.professionDesc = objPCM.professionDesc.ToString();
        //        InformacionCliente.province = objPCM.province.ToString();
        //        InformacionCliente.ProvinceDesc = objPCM.ProvinceDesc.ToString();
        //        InformacionCliente.referBy = objPCM.referBy.ToString();
        //        InformacionCliente.referByDsc = objPCM.referByDsc.ToString();
        //        InformacionCliente.referByN = objPCM.referByN.ToString();
        //        InformacionCliente.relationType = objPCM.relationType.ToString();
        //        InformacionCliente.residencyCountry = objPCM.residencyCountry.ToString();
        //        InformacionCliente.residencyCountryDesc = objPCM.residencyCountryDesc.ToString();
        //        InformacionCliente.resident = objPCM.resident.ToString();
        //        InformacionCliente.riskLevel = objPCM.riskLevel.ToString();
        //        InformacionCliente.riskLevelDsc = objPCM.riskLevelDsc.ToString();
        //        InformacionCliente.secondLastName = objPCM.secondLastName.ToString();
        //        InformacionCliente.secondName = objPCM.secondName.ToString();
        //        InformacionCliente.secondOfficer = objPCM.secondOfficer.ToString();
        //        InformacionCliente.secondOfficerDesc = objPCM.secondOfficerDesc.ToString();
        //        InformacionCliente.sex = objPCM.sex.ToString();
        //        InformacionCliente.shortName = objPCM.shortName.ToString();
        //        InformacionCliente.street = objPCM.street.ToString();
        //        InformacionCliente.taxes = objPCM.taxes.ToString();
        //        InformacionCliente.user = objPCM.user.ToString();
        //        InformacionCliente.zipCode = objPCM.zipCode.ToString();






        //        //objCustomerServices. 
        //        //"bbdatapro"
        //        //"bbdatapro"
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;

        //    }

        //    return retMensaje;

        //}

        //[WebMethod]
        //public Mensaje GrabarInformacionClienteIBS(ref  IntegracionInformacionCustomerServices InformacionCliente, ref IntegracionInformacionCustomerServices ResultadoInformacionCliente)
        //{
        //    Mensaje retMensaje = new Mensaje();
        //    WSIntegracionCoreBancario.CustomerServices.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerServices.CustomerService();
        //    WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCMInput = new WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage();
        //    WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCMOutput = new WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage();


        //    try
        //    {


        //        objPCMInput.birthDate = ObtenerValorNumericoInt(InformacionCliente.birthDate);
        //        objPCMInput.businessCode = InformacionCliente.businessCode.ToString();
        //        objPCMInput.bussinesCodeDesc = InformacionCliente.bussinesCodeDesc.ToString();
        //        objPCMInput.celularPhoneNum = ObtenerValorNumericoInt(InformacionCliente.celularPhoneNum);
        //        objPCMInput.clientClass = InformacionCliente.clientClass.ToString();
        //        objPCMInput.clientStatus = InformacionCliente.clientStatus.ToString();
        //        objPCMInput.clientType = InformacionCliente.clientType.ToString();
        //        objPCMInput.companyAddress = InformacionCliente.companyAddress.ToString();
        //        objPCMInput.companyInfo = InformacionCliente.companyInfo.ToString();
        //        objPCMInput.companyName = InformacionCliente.companyName.ToString();

        //        objPCMInput.companyType = InformacionCliente.companyType.ToString();
        //        objPCMInput.correg = InformacionCliente.correg.ToString();
        //        objPCMInput.corregDesc = InformacionCliente.corregDesc.ToString();
        //        objPCMInput.country = InformacionCliente.country.ToString();
        //        objPCMInput.countryDesc = InformacionCliente.countryDesc.ToString();
        //        objPCMInput.currentIncome = ObtenerValorFloat(InformacionCliente.currentIncome);
        //        objPCMInput.currentJEntryDate = ObtenerValorNumericoInt(InformacionCliente.currentJEntryDate);
        //        objPCMInput.customerNumber = ObtenerValorNumericoInt(InformacionCliente.customerNumber);
        //        objPCMInput.dependents = ObtenerValorNumericoInt(InformacionCliente.dependents);
        //        objPCMInput.discountCompanyCode = InformacionCliente.discountCompanyCode.ToString();
        //        objPCMInput.discountCompanyCodeDsc = InformacionCliente.discountCompanyCodeDsc.ToString();
        //        objPCMInput.distrit = InformacionCliente.distrit.ToString();
        //        objPCMInput.distritDesc = InformacionCliente.distritDesc.ToString();
        //        objPCMInput.educationLevel = InformacionCliente.educationLevel.ToString();
        //        objPCMInput.educationLevelDsc = InformacionCliente.educationLevelDsc.ToString();
        //        objPCMInput.email = InformacionCliente.email.ToString();
        //        objPCMInput.employmentTime = ObtenerValorNumericoInt(InformacionCliente.employmentTime);
        //        objPCMInput.familiarRelationType = InformacionCliente.familiarRelationType.ToString();
        //        objPCMInput.faxNumber = ObtenerValorNumericoInt64(InformacionCliente.faxNumber.ToString());
        //        objPCMInput.firstContactDate = ObtenerValorNumericoInt(InformacionCliente.firstContactDate.ToString());
        //        objPCMInput.firstLastName = InformacionCliente.firstLastName.ToString();
        //        objPCMInput.firstName = InformacionCliente.firstName.ToString();
        //        objPCMInput.groupNumber = ObtenerValorNumericoInt(InformacionCliente.groupNumber.ToString());
        //        objPCMInput.houseNumber = InformacionCliente.houseNumber.ToString();
        //        objPCMInput.housePhoneNum = ObtenerValorNumericoInt64(InformacionCliente.housePhoneNum.ToString());
        //        objPCMInput.idCountry = InformacionCliente.idCountry.ToString();
        //        objPCMInput.idNumber = InformacionCliente.idNumber.ToString();
        //        objPCMInput.idType = InformacionCliente.idType.ToString();
        //        objPCMInput.idTypeDesc = InformacionCliente.idTypeDesc.ToString();
        //        objPCMInput.incomeSource = InformacionCliente.incomeSource.ToString();
        //        objPCMInput.incomeSourceDsc = InformacionCliente.incomeSourceDsc.ToString();
        //        objPCMInput.industryCode = InformacionCliente.industryCode.ToString();
        //        objPCMInput.industryCodeDesc = InformacionCliente.industryCodeDesc.ToString();
        //        objPCMInput.inquiryLevel = ObtenerValorNumericoInt(InformacionCliente.inquiryLevel.ToString());
        //        objPCMInput.language = InformacionCliente.language.ToString();
        //        objPCMInput.legalName = InformacionCliente.legalName.ToString();
        //        objPCMInput.legalStatus = InformacionCliente.legalStatus.ToString();
        //        objPCMInput.mainOfficer = InformacionCliente.mainOfficer.ToString();
        //        objPCMInput.mainOfficerDesc = InformacionCliente.mainOfficerDesc.ToString();
        //        objPCMInput.marriedName = InformacionCliente.marriedName.ToString();
        //        objPCMInput.nacionality = InformacionCliente.nacionality.ToString();
        //        objPCMInput.NacionalityDesc = InformacionCliente.NacionalityDesc.ToString();
        //        objPCMInput.officePhoneNum = ObtenerValorNumericoInt64(InformacionCliente.officePhoneNum.ToString());
        //        objPCMInput.perRefBuildNum1 = InformacionCliente.perRefBuildNum1.ToString();
        //        objPCMInput.perRefBuildNum2 = InformacionCliente.perRefBuildNum2.ToString();
        //        objPCMInput.perRefCorreg1 = InformacionCliente.perRefCorreg1.ToString();
        //        objPCMInput.perRefCorreg1Dsc = InformacionCliente.perRefCorreg1Dsc.ToString();
        //        objPCMInput.perRefCorreg2 = InformacionCliente.perRefCorreg2.ToString();
        //        objPCMInput.perRefCorreg2Dsc = InformacionCliente.perRefCorreg2Dsc.ToString();
        //        objPCMInput.perRefCountry1 = InformacionCliente.perRefCountry1.ToString();
        //        objPCMInput.perRefCountry2 = InformacionCliente.perRefCountry2.ToString();
        //        objPCMInput.perRefDistrit1 = InformacionCliente.perRefDistrit1.ToString();
        //        objPCMInput.perRefDistrit1Dsc = InformacionCliente.perRefDistrit1Dsc.ToString();
        //        objPCMInput.perRefDistrit2 = InformacionCliente.perRefDistrit2.ToString();
        //        objPCMInput.perRefDistrit2Dsc = InformacionCliente.perRefDistrit2Dsc.ToString();
        //        objPCMInput.perRefHouseNum1 = InformacionCliente.perRefHouseNum1.ToString();
        //        objPCMInput.perRefHouseNum2 = InformacionCliente.perRefHouseNum2.ToString();
        //        objPCMInput.perRefName1 = InformacionCliente.perRefName1.ToString();
        //        objPCMInput.perRefName2 = InformacionCliente.perRefName2.ToString();
        //        objPCMInput.perRefPhoneNum1 = ObtenerValorNumericoInt64(InformacionCliente.perRefPhoneNum1.ToString());
        //        objPCMInput.perRefPhoneNum2 = ObtenerValorNumericoInt64(InformacionCliente.perRefPhoneNum2.ToString());
        //        objPCMInput.perRefPoBox1 = InformacionCliente.perRefPoBox1.ToString();
        //        objPCMInput.perRefPoBox2 = InformacionCliente.perRefPoBox2.ToString();
        //        objPCMInput.perRefProvince1 = InformacionCliente.perRefProvince1.ToString();
        //        objPCMInput.perRefProvince1Dsc = InformacionCliente.perRefProvince1Dsc.ToString();
        //        objPCMInput.perRefProvince2 = InformacionCliente.perRefProvince2.ToString();
        //        objPCMInput.perRefProvince2Dsc = InformacionCliente.perRefProvince2Dsc.ToString();
        //        objPCMInput.perRefStreet1 = InformacionCliente.perRefStreet1.ToString();
        //        objPCMInput.perRefStreet2 = InformacionCliente.perRefStreet2.ToString();
        //        objPCMInput.perRefZipCode1 = InformacionCliente.perRefZipCode1.ToString();
        //        objPCMInput.perRefZipCode2 = InformacionCliente.perRefZipCode2.ToString();
        //        objPCMInput.poBox = InformacionCliente.poBox.ToString();
        //        objPCMInput.position = InformacionCliente.position.ToString();
        //        objPCMInput.positionDsc = InformacionCliente.positionDsc.ToString();
        //        objPCMInput.previusJEntryDate = ObtenerValorNumericoInt(InformacionCliente.previusJEntryDate);
        //        objPCMInput.profession = InformacionCliente.profession.ToString();
        //        objPCMInput.professionDesc = InformacionCliente.professionDesc.ToString();
        //        objPCMInput.province = InformacionCliente.province.ToString();
        //        objPCMInput.ProvinceDesc = InformacionCliente.ProvinceDesc.ToString();
        //        objPCMInput.referBy = InformacionCliente.referBy.ToString();
        //        objPCMInput.referByDsc = InformacionCliente.referByDsc.ToString();
        //        objPCMInput.referByN = InformacionCliente.referByN.ToString();
        //        objPCMInput.relationType = InformacionCliente.relationType.ToString();
        //        objPCMInput.residencyCountry = InformacionCliente.residencyCountry.ToString();
        //        objPCMInput.residencyCountryDesc = InformacionCliente.residencyCountryDesc.ToString();
        //        objPCMInput.resident = InformacionCliente.resident.ToString();
        //        objPCMInput.riskLevel = InformacionCliente.riskLevel.ToString();
        //        objPCMInput.riskLevelDsc = InformacionCliente.riskLevelDsc.ToString();
        //        objPCMInput.secondLastName = InformacionCliente.secondLastName.ToString();
        //        objPCMInput.secondName = InformacionCliente.secondName.ToString();
        //        objPCMInput.secondOfficer = InformacionCliente.secondOfficer.ToString();
        //        objPCMInput.secondOfficerDesc = InformacionCliente.secondOfficerDesc.ToString();
        //        objPCMInput.sex = InformacionCliente.sex.ToString();
        //        objPCMInput.shortName = InformacionCliente.shortName.ToString();
        //        objPCMInput.street = InformacionCliente.street.ToString();
        //        objPCMInput.taxes = InformacionCliente.taxes.ToString();
        //        objPCMInput.user = InformacionCliente.user.ToString();
        //        objPCMInput.zipCode = InformacionCliente.zipCode.ToString();


        //        objPCMOutput = objCustomerServices.newPersonalCustomer(objPCMInput);

        //        TransformarInformacion(objPCMOutput, ref ResultadoInformacionCliente);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //    //obj.newPersonalCustomer();

        //}

        //[WebMethod]
        //public Mensaje ActualizarInformacionClienteIBS(ref  IntegracionInformacionCustomerServices InformacionCliente, ref IntegracionInformacionCustomerServices ResultadoInformacionCliente)
        //{
        //    WSIntegracionCoreBancario.CustomerServices.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerServices.CustomerService();
        //    WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCMInput = new WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage();
        //    WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCMOutput = new WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage();
        //    Mensaje retMensaje = new Mensaje();

        //    //WSIntegracionCoreBancario.CustomerService.CustomerService objCustomer = new WSIntegracionCoreBancario.CustomerService.CustomerService();
        //    //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage objInput = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
        //    //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage objOutput = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage(); 

        //    WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage objInputCCM = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
        //    try
        //    {
        //        #region Nuevo CustomerService PersonalCustomerMessage
        //        //objInput.addressLine;
        //        //objInput.birthDate;
        //        //objInput.birthDateDay;
        //        //objInput.birthDateMonth;
        //        //objInput.birthDateYear;
        //        //objInput.branch;
        //        //objInput.businessCode;
        //        //objInput.businessCodeDesc;
        //        //objInput.businessType;
        //        //objInput.businessTypeDesc;
        //        //objInput.celularPhoneNum;
        //        //objInput.channelType;
        //        //objInput.channelTypeDesc;
        //        //objInput.city;
        //        //objInput.classification;
        //        //objInput.classificationDesc;
        //        //objInput.classificationForm;
        //        //objInput.clientClass;
        //        //objInput.clientStatus;
        //        //objInput.clientType;
        //        //objInput.companyAddress;
        //        //objInput.companyCharges;
        //        //objInput.companyInfo;
        //        //objInput.companyName;
        //        //objInput.companyRuc;
        //        //objInput.companyType;
        //        //objInput.contractType;
        //        //objInput.correg;
        //        //objInput.corregDesc;
        //        //objInput.country;
        //        //objInput.countryDesc;
        //        //objInput.countryOfBirth;
        //        //objInput.countryOfBirthDesc;
        //        //objInput.currentIncome;
        //        //objInput.currentJEntryDate;
        //        //objInput.currentJEntryDay;
        //        //objInput.currentJEntryMonth;
        //        //objInput.currentJEntryYear;
        //        //objInput.customerNumber;
        //        //objInput.customerType;
        //        //objInput.customerTypeSel;
        //        //objInput.debitCard;
        //        //objInput.dependents;
        //        //objInput.discountCompanyCode;
        //        //objInput.discountCompanyDsc;
        //        //objInput.distrit;
        //        //objInput.distritDesc;
        //        //objInput.educationalExpenses;
        //        //objInput.educationLevel;
        //        //objInput.educationLevelDesc;
        //        //objInput.email;
        //        //objInput.employeeNumber;
        //        //objInput.employmentTime;
        //        //objInput.familiarRelationType;
        //        //objInput.faxNumber;
        //        //objInput.firstContactDateDay;
        //        //objInput.firstContactDateMont;
        //        //objInput.firstContactDateYear;
        //        //objInput.firstLastName;
        //        //objInput.firstName;
        //        //objInput.floorLevel;
        //        //objInput.fuente;
        //        //objInput.groupNumber;
        //        //objInput.houseNumber;
        //        //objInput.housePhoneNum;
        //        //objInput.idContraloria;
        //        //objInput.idCountry;
        //        //objInput.idCountry4;
        //        //objInput.idCountryDesc4;
        //        //objInput.idNumber;
        //        //objInput.idNumber4;
        //        //objInput.idType;
        //        //objInput.idType4;
        //        //objInput.idTypeDesc;
        //        //objInput.idTypeDesc4;
        //        //objInput.incomeLevel;
        //        //objInput.incomeSource;
        //        //objInput.incomeSourceDesc;
        //        //objInput.incomeType;
        //        //objInput.indicador;
        //        //objInput.industryCode;
        //        //objInput.industryCodeDesc;
        //        //objInput.initialCapital;
        //        //objInput.inquiryLevel;
        //        //objInput.language;
        //        //objInput.legalName;
        //        //objInput.legalStatus;
        //        //objInput.longIdNumber;
        //        //objInput.longIdTypeDesc;
        //        //objInput.mailingCode;
        //        //objInput.mailingCodeDesc;
        //        //objInput.mainOfficer;
        //        //objInput.mainOfficerDesc;
        //        //objInput.marriedName;
        //        //objInput.municipality;
        //        //objInput.municipalityDesc;
        //        //objInput.nacionalityDesc;
        //        //objInput.nationality;
        //        //objInput.netPatrimony;
        //        //objInput.officeNumber;
        //        //objInput.officePhoneNum;
        //        //objInput.otherExpenses;
        //        //objInput.otherIncome;
        //        //objInput.otherIncomeSource;
        //        //objInput.parish;
        //        //objInput.parishDesc;
        //        //objInput.payDay;
        //        //objInput.poBox;
        //        //objInput.position;
        //        //objInput.positionDesc;
        //        //objInput.previousJEndDay;
        //        //objInput.previousJEndMonth;
        //        //objInput.previousJEndYear;
        //        //objInput.previousJEntryDay;
        //        //objInput.previousJEntryMonth;
        //        //objInput.previousJEntryYear;
        //        //objInput.previsionTable;
        //        //objInput.profession;
        //        //objInput.professionDesc;
        //        //objInput.propertyType;
        //        //objInput.province;
        //        //objInput.provinceDesc;
        //        //objInput.referBy;
        //        //objInput.referByDesc;
        //        //objInput.referByName;
        //        //objInput.relation;
        //        //objInput.relationDesc;
        //        //objInput.relationType;
        //        //objInput.rentAmount;
        //        //objInput.rentType;
        //        //objInput.residencyCountry;
        //        //objInput.residencyCountryDesc;
        //        //objInput.resident;
        //        //objInput.riskLevel;
        //        //objInput.riskLevelDesc;
        //        //objInput.salesChannel;
        //        //objInput.salesChannelDesc;
        //        //objInput.secondIdCountry;
        //        //objInput.secondIdCountryDesc;
        //        //objInput.secondIdNumber;
        //        //objInput.secondIdType;
        //        //objInput.secondIdTypeDesc;
        //        //objInput.secondLastName;
        //        //objInput.secondName;
        //        //objInput.secondOfficer;
        //        //objInput.secondOfficerDesc;
        //        //objInput.sex;
        //        //objInput.shortIdCountry;
        //        //objInput.shortIdNumber;
        //        //objInput.shortIdType;
        //        //objInput.shortName;
        //        //objInput.socialSecurityNumber;
        //        //objInput.specialInstructions;
        //        //objInput.street;
        //        //objInput.taxes;
        //        //objInput.thirdIdCountry;
        //        //objInput.thirdIdCountryDesc;
        //        //objInput.thirdIdNumber;
        //        //objInput.thirdIdType;
        //        //objInput.thirdIdTypeDesc;
        //        //objInput.user;
        //        //objInput.userCode6Desc;
        //        //objInput.zipCode;
        //        #endregion

        //        #region Nuevo CustomerServices CorporateCustomerMessage
        //        //objInputCCM.addressLine1;
        //        //objInputCCM.addressLine2;
        //        //objInputCCM.addressLine3;
        //        //objInputCCM.addressVerbalRef;
        //        //objInputCCM.appPending;
        //        //objInputCCM.aptoOffice;
        //        //objInputCCM.automaticAppFlag;
        //        //objInputCCM.bankingType;
        //        //objInputCCM.building;
        //        //objInputCCM.businessArea;
        //        //objInputCCM.businessCode;
        //        //objInputCCM.businessCodeDesc;
        //        //objInputCCM.businessTypeDesc;
        //        //objInputCCM.businessUnity;
        //        //objInputCCM.capitalPaid;
        //        //objInputCCM.celularPhoneNumber;
        //        //objInputCCM.city;
        //        //objInputCCM.classification;
        //        //objInputCCM.classificationDesc;
        //        //objInputCCM.classificationForm;
        //        //objInputCCM.clientClass;
        //        //objInputCCM.clientOperativeType;
        //        //objInputCCM.clientStatus;
        //        //objInputCCM.companySize;
        //        //objInputCCM.condominium;
        //        //objInputCCM.correg;
        //        //objInputCCM.corregDesc;
        //        //objInputCCM.country;
        //        //objInputCCM.countryOfBirthDesc;
        //        //objInputCCM.customerNumber;
        //        //objInputCCM.customerType;
        //        //objInputCCM.debitCardNumber;
        //        //objInputCCM.discountCompanyDesc;
        //        //objInputCCM.distrit;
        //        //objInputCCM.distritDesc;
        //        //objInputCCM.educationLevelDesc;
        //        //objInputCCM.email;
        //        //objInputCCM.faxNumber;
        //        //objInputCCM.firstContact;
        //        //objInputCCM.floorLevel;
        //        //objInputCCM.folioNumber;
        //        //objInputCCM.foundation;
        //        //objInputCCM.fourthIdCountry;
        //        //objInputCCM.fourthIdCountryDesc;
        //        //objInputCCM.fourthIdNumber;
        //        //objInputCCM.fourthIdType;
        //        //objInputCCM.fourthIdTypeDesc;
        //        //objInputCCM.groupNumber;
        //        //objInputCCM.idCountry;
        //        //objInputCCM.idCountryDesc;
        //        //objInputCCM.idNumber;
        //        //objInputCCM.idType;
        //        //objInputCCM.idTypeDesc;
        //        //objInputCCM.incomeSource;
        //        //objInputCCM.incomeSourceDesc;
        //        //objInputCCM.industryCode;
        //        //objInputCCM.industryCodeDesc;
        //        //objInputCCM.initialCapital;
        //        //objInputCCM.inquiryLevel;
        //        //objInputCCM.inscription;
        //        //objInputCCM.inscriptionNumber;
        //        //objInputCCM.juridicalDistrict;
        //        //objInputCCM.languageIndicator;
        //        //objInputCCM.legalName;
        //        //objInputCCM.mailingCode;
        //        //objInputCCM.mailingCodeDesc;
        //        //objInputCCM.mainOfficer;
        //        //objInputCCM.mainOfficerDesc;
        //        //objInputCCM.moreRecords;
        //        //objInputCCM.municipality;
        //        //objInputCCM.municipalityDesc;
        //        //objInputCCM.nacionalityDesc;
        //        //objInputCCM.nationality;
        //        //objInputCCM.numberOfShears;
        //        //objInputCCM.officePhoneNumber1;
        //        //objInputCCM.officePhoneNumber2;
        //        //objInputCCM.originCountry;
        //        //objInputCCM.ownershipType;
        //        //objInputCCM.parish;
        //        //objInputCCM.parishDesc;
        //        //objInputCCM.poBox;
        //        //objInputCCM.portfolioType;
        //        //objInputCCM.positionDesc;
        //        //objInputCCM.previousName;
        //        //objInputCCM.previsionTable;
        //        //objInputCCM.propertyType;
        //        //objInputCCM.provinceDesc;
        //        //objInputCCM.referBy;
        //        //objInputCCM.referByDesc;
        //        //objInputCCM.referByName;
        //        //objInputCCM.reference;
        //        //objInputCCM.region;
        //        //objInputCCM.registerNumber;
        //        //objInputCCM.relation;
        //        //objInputCCM.relationDesc;
        //        //objInputCCM.residencyCountry;
        //        //objInputCCM.residencyCountryDesc;
        //        //objInputCCM.residentFlag;
        //        //objInputCCM.riskCentral;
        //        //objInputCCM.riskLevel;
        //        //objInputCCM.riskLevelDesc;
        //        //objInputCCM.rollOverVolume;
        //        //objInputCCM.salesLevel;
        //        //objInputCCM.secondIdCountry;
        //        //objInputCCM.secondIdCountryDesc;
        //        //objInputCCM.secondIdNumber;
        //        //objInputCCM.secondIdType;
        //        //objInputCCM.secondIdTypeDesc;
        //        //objInputCCM.secondOfficer;
        //        //objInputCCM.secondOfficerDesc;
        //        //objInputCCM.shortName;
        //        //objInputCCM.socioEconomicLevel;
        //        //objInputCCM.specialInstructions;
        //        //objInputCCM.state;
        //        //objInputCCM.stockHolders;
        //        //objInputCCM.street;
        //        //objInputCCM.subscribedCapital;
        //        //objInputCCM.taxes;
        //        //objInputCCM.thirdIdCountry;
        //        //objInputCCM.thirdIdCountryDesc;
        //        //objInputCCM.thirdIdNumber;
        //        //objInputCCM.thirdIdType;
        //        //objInputCCM.thirdIdTypeDesc;
        //        //objInputCCM.typeOfCorresBank;
        //        //objInputCCM.user;
        //        //objInputCCM.userCode6Desc;
        //        //objInputCCM.userCode9Desc;
        //        //objInputCCM.volumeNumber;
        //        //objInputCCM.yearsBusiness;
        //        //objInputCCM.zipCode;



        //        #endregion

        //        objPCMInput.birthDate = ObtenerValorNumericoInt(InformacionCliente.birthDate);
        //        objPCMInput.businessCode = InformacionCliente.businessCode.ToString();
        //        objPCMInput.bussinesCodeDesc = InformacionCliente.bussinesCodeDesc.ToString();
        //        objPCMInput.celularPhoneNum = ObtenerValorNumericoInt(InformacionCliente.celularPhoneNum);
        //        objPCMInput.clientClass = InformacionCliente.clientClass.ToString();
        //        objPCMInput.clientStatus = InformacionCliente.clientStatus.ToString();
        //        objPCMInput.clientType = InformacionCliente.clientType.ToString();
        //        objPCMInput.companyAddress = InformacionCliente.companyAddress.ToString();
        //        objPCMInput.companyInfo = InformacionCliente.companyInfo.ToString();
        //        objPCMInput.companyName = InformacionCliente.companyName.ToString();

        //        objPCMInput.companyType = InformacionCliente.companyType.ToString();
        //        objPCMInput.correg = InformacionCliente.correg.ToString();
        //        objPCMInput.corregDesc = InformacionCliente.corregDesc.ToString();
        //        objPCMInput.country = InformacionCliente.country.ToString();
        //        objPCMInput.countryDesc = InformacionCliente.countryDesc.ToString();
        //        objPCMInput.currentIncome = ObtenerValorFloat(InformacionCliente.currentIncome);
        //        objPCMInput.currentJEntryDate = ObtenerValorNumericoInt(InformacionCliente.currentJEntryDate);
        //        objPCMInput.customerNumber = ObtenerValorNumericoInt(InformacionCliente.customerNumber);
        //        objPCMInput.dependents = ObtenerValorNumericoInt(InformacionCliente.dependents);
        //        objPCMInput.discountCompanyCode = InformacionCliente.discountCompanyCode.ToString();
        //        objPCMInput.discountCompanyCodeDsc = InformacionCliente.discountCompanyCodeDsc.ToString();
        //        objPCMInput.distrit = InformacionCliente.distrit.ToString();
        //        objPCMInput.distritDesc = InformacionCliente.distritDesc.ToString();
        //        objPCMInput.educationLevel = InformacionCliente.educationLevel.ToString();
        //        objPCMInput.educationLevelDsc = InformacionCliente.educationLevelDsc.ToString();
        //        objPCMInput.email = InformacionCliente.email.ToString();
        //        objPCMInput.employmentTime = ObtenerValorNumericoInt(InformacionCliente.employmentTime);
        //        objPCMInput.familiarRelationType = InformacionCliente.familiarRelationType.ToString();
        //        objPCMInput.faxNumber = ObtenerValorNumericoInt64(InformacionCliente.faxNumber.ToString());
        //        objPCMInput.firstContactDate = ObtenerValorNumericoInt(InformacionCliente.firstContactDate.ToString());
        //        objPCMInput.firstLastName = InformacionCliente.firstLastName.ToString();
        //        objPCMInput.firstName = InformacionCliente.firstName.ToString();
        //        objPCMInput.groupNumber = ObtenerValorNumericoInt(InformacionCliente.groupNumber.ToString());
        //        objPCMInput.houseNumber = InformacionCliente.houseNumber.ToString();
        //        objPCMInput.housePhoneNum = ObtenerValorNumericoInt64(InformacionCliente.housePhoneNum.ToString());
        //        objPCMInput.idCountry = InformacionCliente.idCountry.ToString();
        //        objPCMInput.idNumber = InformacionCliente.idNumber.ToString();
        //        objPCMInput.idType = InformacionCliente.idType.ToString();
        //        objPCMInput.idTypeDesc = InformacionCliente.idTypeDesc.ToString();
        //        objPCMInput.incomeSource = InformacionCliente.incomeSource.ToString();
        //        objPCMInput.incomeSourceDsc = InformacionCliente.incomeSourceDsc.ToString();
        //        objPCMInput.industryCode = InformacionCliente.industryCode.ToString();
        //        objPCMInput.industryCodeDesc = InformacionCliente.industryCodeDesc.ToString();
        //        objPCMInput.inquiryLevel = ObtenerValorNumericoInt(InformacionCliente.inquiryLevel.ToString());
        //        objPCMInput.language = InformacionCliente.language.ToString();
        //        objPCMInput.legalName = InformacionCliente.legalName.ToString();
        //        objPCMInput.legalStatus = InformacionCliente.legalStatus.ToString();
        //        objPCMInput.mainOfficer = InformacionCliente.mainOfficer.ToString();
        //        objPCMInput.mainOfficerDesc = InformacionCliente.mainOfficerDesc.ToString();
        //        objPCMInput.marriedName = InformacionCliente.marriedName.ToString();
        //        objPCMInput.nacionality = InformacionCliente.nacionality.ToString();
        //        objPCMInput.NacionalityDesc = InformacionCliente.NacionalityDesc.ToString();
        //        objPCMInput.officePhoneNum = ObtenerValorNumericoInt64(InformacionCliente.officePhoneNum.ToString());
        //        objPCMInput.perRefBuildNum1 = InformacionCliente.perRefBuildNum1.ToString();
        //        objPCMInput.perRefBuildNum2 = InformacionCliente.perRefBuildNum2.ToString();
        //        objPCMInput.perRefCorreg1 = InformacionCliente.perRefCorreg1.ToString();
        //        objPCMInput.perRefCorreg1Dsc = InformacionCliente.perRefCorreg1Dsc.ToString();
        //        objPCMInput.perRefCorreg2 = InformacionCliente.perRefCorreg2.ToString();
        //        objPCMInput.perRefCorreg2Dsc = InformacionCliente.perRefCorreg2Dsc.ToString();
        //        objPCMInput.perRefCountry1 = InformacionCliente.perRefCountry1.ToString();
        //        objPCMInput.perRefCountry2 = InformacionCliente.perRefCountry2.ToString();
        //        objPCMInput.perRefDistrit1 = InformacionCliente.perRefDistrit1.ToString();
        //        objPCMInput.perRefDistrit1Dsc = InformacionCliente.perRefDistrit1Dsc.ToString();
        //        objPCMInput.perRefDistrit2 = InformacionCliente.perRefDistrit2.ToString();
        //        objPCMInput.perRefDistrit2Dsc = InformacionCliente.perRefDistrit2Dsc.ToString();
        //        objPCMInput.perRefHouseNum1 = InformacionCliente.perRefHouseNum1.ToString();
        //        objPCMInput.perRefHouseNum2 = InformacionCliente.perRefHouseNum2.ToString();
        //        objPCMInput.perRefName1 = InformacionCliente.perRefName1.ToString();
        //        objPCMInput.perRefName2 = InformacionCliente.perRefName2.ToString();
        //        objPCMInput.perRefPhoneNum1 = ObtenerValorNumericoInt64(InformacionCliente.perRefPhoneNum1.ToString());
        //        objPCMInput.perRefPhoneNum2 = ObtenerValorNumericoInt64(InformacionCliente.perRefPhoneNum2.ToString());
        //        objPCMInput.perRefPoBox1 = InformacionCliente.perRefPoBox1.ToString();
        //        objPCMInput.perRefPoBox2 = InformacionCliente.perRefPoBox2.ToString();
        //        objPCMInput.perRefProvince1 = InformacionCliente.perRefProvince1.ToString();
        //        objPCMInput.perRefProvince1Dsc = InformacionCliente.perRefProvince1Dsc.ToString();
        //        objPCMInput.perRefProvince2 = InformacionCliente.perRefProvince2.ToString();
        //        objPCMInput.perRefProvince2Dsc = InformacionCliente.perRefProvince2Dsc.ToString();
        //        objPCMInput.perRefStreet1 = InformacionCliente.perRefStreet1.ToString();
        //        objPCMInput.perRefStreet2 = InformacionCliente.perRefStreet2.ToString();
        //        objPCMInput.perRefZipCode1 = InformacionCliente.perRefZipCode1.ToString();
        //        objPCMInput.perRefZipCode2 = InformacionCliente.perRefZipCode2.ToString();
        //        objPCMInput.poBox = InformacionCliente.poBox.ToString();
        //        objPCMInput.position = InformacionCliente.position.ToString();
        //        objPCMInput.positionDsc = InformacionCliente.positionDsc.ToString();
        //        objPCMInput.previusJEntryDate = ObtenerValorNumericoInt(InformacionCliente.previusJEntryDate);
        //        objPCMInput.profession = InformacionCliente.profession.ToString();
        //        objPCMInput.professionDesc = InformacionCliente.professionDesc.ToString();
        //        objPCMInput.province = InformacionCliente.province.ToString();
        //        objPCMInput.ProvinceDesc = InformacionCliente.ProvinceDesc.ToString();
        //        objPCMInput.referBy = InformacionCliente.referBy.ToString();
        //        objPCMInput.referByDsc = InformacionCliente.referByDsc.ToString();
        //        objPCMInput.referByN = InformacionCliente.referByN.ToString();
        //        objPCMInput.relationType = InformacionCliente.relationType.ToString();
        //        objPCMInput.residencyCountry = InformacionCliente.residencyCountry.ToString();
        //        objPCMInput.residencyCountryDesc = InformacionCliente.residencyCountryDesc.ToString();
        //        objPCMInput.resident = InformacionCliente.resident.ToString();
        //        objPCMInput.riskLevel = InformacionCliente.riskLevel.ToString();
        //        objPCMInput.riskLevelDsc = InformacionCliente.riskLevelDsc.ToString();
        //        objPCMInput.secondLastName = InformacionCliente.secondLastName.ToString();
        //        objPCMInput.secondName = InformacionCliente.secondName.ToString();
        //        objPCMInput.secondOfficer = InformacionCliente.secondOfficer.ToString();
        //        objPCMInput.secondOfficerDesc = InformacionCliente.secondOfficerDesc.ToString();
        //        objPCMInput.sex = InformacionCliente.sex.ToString();
        //        objPCMInput.shortName = InformacionCliente.shortName.ToString();
        //        objPCMInput.street = InformacionCliente.street.ToString();
        //        objPCMInput.taxes = InformacionCliente.taxes.ToString();
        //        objPCMInput.user = InformacionCliente.user.ToString();
        //        objPCMInput.zipCode = InformacionCliente.zipCode.ToString();

        //        objPCMOutput = objCustomerServices.personalCustomerMaintenance(objPCMInput);

        //        TransformarInformacion(objPCMOutput, ref ResultadoInformacionCliente);

        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //    //obj.newPersonalCustomer();

        //}

        //[WebMethod]
        //public Mensaje GenerarNuevaCuentaIBS(ref IntegracionInformacionAccountServices InformacionCuentaCliente, ref IntegracionInformacionAccountServices InformacionCuentaClienteResultado)
        //{
        //    Mensaje retMensaje = new Mensaje();
        //    WSIntegracionCoreBancario.AccountServices.AccountService objServices = new WSIntegracionCoreBancario.AccountServices.AccountService();
        //    WSIntegracionCoreBancario.AccountServices.AccountsMessage objAMInput = new WSIntegracionCoreBancario.AccountServices.AccountsMessage();
        //    WSIntegracionCoreBancario.AccountServices.AccountsMessage objAMOutput = new WSIntegracionCoreBancario.AccountServices.AccountsMessage();

        //    WSIntegracionCoreBancario.AccountService.AccountService objAccount = new WSIntegracionCoreBancario.AccountService.AccountService();
        //    WSIntegracionCoreBancario.AccountService.AccountsMessage objInput = new WSIntegracionCoreBancario.AccountService.AccountsMessage();
        //    WSIntegracionCoreBancario.AccountService.AccountsMessage objOutput = new WSIntegracionCoreBancario.AccountService.AccountsMessage();

        //    try
        //    {
        //        //objInput.accountNumber;
        //        //objInput.accountStatementFrecuency;
        //        //objInput.accountStatementPrintingDay;
        //        //objInput.accountStatementRetentionFlag;
        //        //objInput.accountStatementType;
        //        //objInput.accountStatus;
        //        //objInput.accountType;
        //        //objInput.accountTypeDesc;
        //        //objInput.appCode;
        //        //objInput.balanceUsedForOverdraft;
        //        //objInput.bank;
        //        //objInput.branch;
        //        //objInput.chargesPaymentDay;
        //        //objInput.checkbookDeliveryRestrictionsFlag;
        //        //objInput.checkbookExpensesChargesFlag;
        //        //objInput.checkbookMinimumStock;
        //        //objInput.checkbookType;
        //        //objInput.checkingChargesFlag;
        //        //objInput.checkingChargesRestriction;
        //        //objInput.checkingType;
        //        //objInput.clientLinMultiuse;
        //        //objInput.clientLinNumber;
        //        //objInput.consolidatedStatementFlag;
        //        //objInput.costCenter;
        //        //objInput.creditLineClient;
        //        //objInput.creditLineLimit;
        //        //objInput.creditLineNumber;
        //        //objInput.creditLineRevisionDate;
        //        //objInput.creditLineType;
        //        //objInput.currency;
        //        //objInput.customerId;
        //        //objInput.customerName;
        //        //objInput.customerNumber;
        //        //objInput.dailyStatementAccountVia;
        //        //objInput.glAccount;
        //        //objInput.interestPaymentFlag;
        //        //objInput.limitValueOverdraft1;
        //        //objInput.limitValueOverdraft2;
        //        //objInput.mailingAddress;
        //        //objInput.minimumCheckingStock;
        //        //objInput.officialCode;
        //        //objInput.openingDate;
        //        //objInput.overdraftAmountUsed;
        //        //objInput.overdraftCharges;
        //        //objInput.overdraftFrecuency;
        //        //objInput.overdraftsChargesFlag;
        //        //objInput.overrateForOverdraft1;
        //        //objInput.overrateForOverdraft2;
        //        //objInput.personalizationCheck1;
        //        //objInput.personalizationCheck2;
        //        //objInput.personalizedNameForCheckbook;
        //        //objInput.productCode;
        //        //objInput.productCodeDesc;
        //        //objInput.relatedDetailAccount;
        //        //objInput.relatedGlAccount;
        //        //objInput.relatedProduct;
        //        //objInput.sendingChannel;
        //        //objInput.serviceChargesFlag;
        //        //objInput.specialInstructions;
        //        //objInput.tariffTable;
        //        //objInput.taxesWitholdingFlag;
        //        //objInput.user;
        //        //objInput.userCode1;
        //        //objInput.userCode2;
        //        //objInput.userCode3;
        //        //objInput.userCode4;





        //        objAMInput.user = ObtenerValorEnCadena(InformacionCuentaCliente.user);
        //        objAMInput.accountNumber = ObtenerValorEnCadena(InformacionCuentaCliente.accountNumber);
        //        objAMInput.customerNumber = ObtenerValorEnCadena(InformacionCuentaCliente.customerNumber);
        //        objAMInput.customerId = ObtenerValorEnCadena(InformacionCuentaCliente.customerId);
        //        objAMInput.productCode = ObtenerValorEnCadena(InformacionCuentaCliente.productCode);
        //        objAMInput.bank = ObtenerValorEnCadena(InformacionCuentaCliente.bank);
        //        objAMInput.currency = ObtenerValorEnCadena(InformacionCuentaCliente.currency);
        //        objAMInput.branch = ObtenerValorEnCadena(InformacionCuentaCliente.branch);
        //        objAMInput.glAccount = ObtenerValorEnCadena(InformacionCuentaCliente.glAccount);
        //        objAMInput.customerName = ObtenerValorEnCadena(InformacionCuentaCliente.customerName);
        //        objAMInput.accountType = ObtenerValorEnCadena(InformacionCuentaCliente.accountType);
        //        objAMInput.accountTypeDesc = ObtenerValorEnCadena(InformacionCuentaCliente.accountTypeDesc);
        //        objAMInput.productCodeDesc = ObtenerValorEnCadena(InformacionCuentaCliente.productCodeDesc);
        //        objAMInput.appCode = ObtenerValorEnCadena(InformacionCuentaCliente.appCode);
        //        objAMInput.officialCode = ObtenerValorEnCadena(InformacionCuentaCliente.officialCode);
        //        objAMInput.costCenter = ObtenerValorEnCadena(InformacionCuentaCliente.costCenter);
        //        objAMInput.openingDate = ObtenerValorEnCadena(InformacionCuentaCliente.openingDate);
        //        objAMInput.tariffTable = ObtenerValorEnCadena(InformacionCuentaCliente.tariffTable);
        //        objAMInput.userCode1 = ObtenerValorEnCadena(InformacionCuentaCliente.userCode1);
        //        objAMInput.userCode2 = ObtenerValorEnCadena(InformacionCuentaCliente.userCode2);
        //        objAMInput.userCode3 = ObtenerValorEnCadena(InformacionCuentaCliente.userCode3);
        //        objAMInput.userCode4 = ObtenerValorEnCadena(InformacionCuentaCliente.userCode4);
        //        objAMInput.taxesWitholdingFlag = ObtenerValorEnCadena(InformacionCuentaCliente.taxesWitholdingFlag);
        //        objAMInput.checkingType = ObtenerValorEnCadena(InformacionCuentaCliente.checkingType);
        //        objAMInput.minimumCheckingStock = ObtenerValorEnCadena(InformacionCuentaCliente.minimumCheckingStock);
        //        objAMInput.serviceChargesFlag = ObtenerValorEnCadena(InformacionCuentaCliente.serviceChargesFlag);
        //        objAMInput.overdraftsChargesFlag = ObtenerValorEnCadena(InformacionCuentaCliente.overdraftsChargesFlag);
        //        objAMInput.overdraftAmountUsed = ObtenerValorEnCadena(InformacionCuentaCliente.overdraftAmountUsed);
        //        objAMInput.overdraftFrecuency = ObtenerValorEnCadena(InformacionCuentaCliente.overdraftFrecuency);
        //        objAMInput.chargesPaymentDay = ObtenerValorEnCadena(InformacionCuentaCliente.chargesPaymentDay);
        //        objAMInput.accountStatementRetentionFlag = ObtenerValorEnCadena(InformacionCuentaCliente.accountStatementRetentionFlag);
        //        objAMInput.accountStatementFrecuency = ObtenerValorEnCadena(InformacionCuentaCliente.accountStatementFrecuency);
        //        objAMInput.accountStatementPrintingDay = ObtenerValorEnCadena(InformacionCuentaCliente.accountStatementPrintingDay);
        //        objAMInput.accountStatementType = ObtenerValorEnCadena(InformacionCuentaCliente.accountStatementType);
        //        objAMInput.consolidatedStatementFlag = ObtenerValorEnCadena(InformacionCuentaCliente.consolidatedStatementFlag);
        //        objAMInput.dailyStatementAccountVia = ObtenerValorEnCadena(InformacionCuentaCliente.dailyStatementAccountVia);
        //        objAMInput.clientLinMultiuse = ObtenerValorEnCadena(InformacionCuentaCliente.clientLinMultiuse);
        //        objAMInput.clientLinNumber = ObtenerValorEnCadena(InformacionCuentaCliente.clientLinNumber);
        //        objAMInput.sendingChannel = ObtenerValorEnCadena(InformacionCuentaCliente.sendingChannel);
        //        objAMInput.personalizationCheck1 = ObtenerValorEnCadena(InformacionCuentaCliente.personalizationCheck1);
        //        objAMInput.personalizationCheck2 = ObtenerValorEnCadena(InformacionCuentaCliente.personalizationCheck2);
        //        objAMInput.checkingChargesFlag = ObtenerValorEnCadena(InformacionCuentaCliente.checkingChargesFlag);
        //        objAMInput.checkingChargesRestriction = ObtenerValorEnCadena(InformacionCuentaCliente.checkingChargesRestriction);
        //        objAMInput.interestPaymentFlag = ObtenerValorEnCadena(InformacionCuentaCliente.interestPaymentFlag);
        //        objAMInput.accountStatus = ObtenerValorEnCadena(InformacionCuentaCliente.accountStatus);
        //        objAMInput.mailingAddress = ObtenerValorEnCadena(InformacionCuentaCliente.mailingAddress);
        //        objAMInput.creditLineNumber = ObtenerValorEnCadena(InformacionCuentaCliente.creditLineNumber);
        //        objAMInput.creditLineType = ObtenerValorEnCadena(InformacionCuentaCliente.creditLineType);



        //        objAMOutput = objServices.newAccount(objAMInput);
        //        TransformarInformacionCuenta(objAMOutput, ref InformacionCuentaClienteResultado);
        //    }
        //    catch (Exception ex)
        //    {
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
        //        retMensaje.Error = ex.Message.ToString();
        //        retMensaje.MensajeTecnico = ex.Message;
        //    }

        //    return retMensaje;
        //}

        ///// <summary>
        ///// Cliente registrado :: Transforma la informacion de un objeto tipo PersonalCustMessage a un objeto tipo IntegracionInformacionCustomerServices
        ///// </summary>
        ///// <param name="objPCM"></param>
        ///// <param name="InformacionCliente"></param>
        //private void TransformarInformacion(WSIntegracionCoreBancario.CustomerServices.PersonalCustMessage objPCM, ref IntegracionInformacionCustomerServices InformacionCliente)
        //{

        //    InformacionCliente.birthDate = ObtenerValorEnCadena(objPCM.birthDate);
        //    InformacionCliente.businessCode = ObtenerValorEnCadena(objPCM.businessCode);
        //    InformacionCliente.bussinesCodeDesc = ObtenerValorEnCadena(objPCM.bussinesCodeDesc);
        //    InformacionCliente.celularPhoneNum = ObtenerValorEnCadena(objPCM.celularPhoneNum);
        //    InformacionCliente.clientClass = ObtenerValorEnCadena(objPCM.clientClass);
        //    InformacionCliente.clientStatus = ObtenerValorEnCadena(objPCM.clientStatus);
        //    InformacionCliente.clientType = ObtenerValorEnCadena(objPCM.clientType);
        //    InformacionCliente.companyAddress = ObtenerValorEnCadena(objPCM.companyAddress);
        //    InformacionCliente.companyInfo = ObtenerValorEnCadena(objPCM.companyInfo);
        //    InformacionCliente.companyName = ObtenerValorEnCadena(objPCM.companyName);
        //    InformacionCliente.companyType = ObtenerValorEnCadena(objPCM.companyType);
        //    InformacionCliente.correg = ObtenerValorEnCadena(objPCM.correg);
        //    InformacionCliente.corregDesc = ObtenerValorEnCadena(objPCM.corregDesc);
        //    InformacionCliente.country = ObtenerValorEnCadena(objPCM.country);
        //    InformacionCliente.countryDesc = ObtenerValorEnCadena(objPCM.countryDesc);
        //    InformacionCliente.currentIncome = ObtenerValorEnCadena(objPCM.currentIncome);
        //    InformacionCliente.currentJEntryDate = ObtenerValorEnCadena(objPCM.currentJEntryDate);
        //    InformacionCliente.customerNumber = ObtenerValorEnCadena(objPCM.customerNumber);
        //    InformacionCliente.dependents = ObtenerValorEnCadena(objPCM.dependents);
        //    InformacionCliente.discountCompanyCode = ObtenerValorEnCadena(objPCM.discountCompanyCode);
        //    InformacionCliente.discountCompanyCodeDsc = ObtenerValorEnCadena(objPCM.discountCompanyCodeDsc);
        //    InformacionCliente.distrit = ObtenerValorEnCadena(objPCM.distrit);
        //    InformacionCliente.distritDesc = ObtenerValorEnCadena(objPCM.distritDesc);
        //    InformacionCliente.educationLevel = ObtenerValorEnCadena(objPCM.educationLevel);
        //    InformacionCliente.educationLevelDsc = ObtenerValorEnCadena(objPCM.educationLevelDsc);
        //    InformacionCliente.email = ObtenerValorEnCadena(objPCM.email);
        //    InformacionCliente.employmentTime = ObtenerValorEnCadena(objPCM.employmentTime);
        //    InformacionCliente.familiarRelationType = ObtenerValorEnCadena(objPCM.familiarRelationType);
        //    InformacionCliente.faxNumber = ObtenerValorEnCadena(objPCM.faxNumber);
        //    InformacionCliente.firstContactDate = ObtenerValorEnCadena(objPCM.firstContactDate);
        //    InformacionCliente.firstLastName = ObtenerValorEnCadena(objPCM.firstLastName);
        //    InformacionCliente.firstName = ObtenerValorEnCadena(objPCM.firstName);
        //    InformacionCliente.groupNumber = ObtenerValorEnCadena(objPCM.groupNumber);
        //    InformacionCliente.houseNumber = ObtenerValorEnCadena(objPCM.houseNumber);
        //    InformacionCliente.housePhoneNum = ObtenerValorEnCadena(objPCM.housePhoneNum);
        //    InformacionCliente.idCountry = ObtenerValorEnCadena(objPCM.idCountry);
        //    InformacionCliente.idNumber = ObtenerValorEnCadena(objPCM.idNumber);
        //    InformacionCliente.idType = ObtenerValorEnCadena(objPCM.idType);
        //    InformacionCliente.idTypeDesc = ObtenerValorEnCadena(objPCM.idTypeDesc);
        //    InformacionCliente.incomeSource = ObtenerValorEnCadena(objPCM.incomeSource);
        //    InformacionCliente.incomeSourceDsc = ObtenerValorEnCadena(objPCM.incomeSourceDsc);
        //    InformacionCliente.industryCode = ObtenerValorEnCadena(objPCM.industryCode);
        //    InformacionCliente.industryCodeDesc = ObtenerValorEnCadena(objPCM.industryCodeDesc);
        //    InformacionCliente.inquiryLevel = ObtenerValorEnCadena(objPCM.inquiryLevel);
        //    InformacionCliente.language = ObtenerValorEnCadena(objPCM.language);
        //    InformacionCliente.legalName = ObtenerValorEnCadena(objPCM.legalName);
        //    InformacionCliente.legalStatus = ObtenerValorEnCadena(objPCM.legalStatus);
        //    InformacionCliente.mainOfficer = ObtenerValorEnCadena(objPCM.mainOfficer);
        //    InformacionCliente.mainOfficerDesc = ObtenerValorEnCadena(objPCM.mainOfficerDesc);
        //    InformacionCliente.marriedName = ObtenerValorEnCadena(objPCM.marriedName);
        //    InformacionCliente.nacionality = ObtenerValorEnCadena(objPCM.nacionality);
        //    InformacionCliente.NacionalityDesc = ObtenerValorEnCadena(objPCM.NacionalityDesc);
        //    InformacionCliente.officePhoneNum = ObtenerValorEnCadena(objPCM.officePhoneNum);
        //    InformacionCliente.perRefBuildNum1 = ObtenerValorEnCadena(objPCM.perRefBuildNum1);
        //    InformacionCliente.perRefBuildNum2 = ObtenerValorEnCadena(objPCM.perRefBuildNum2);
        //    InformacionCliente.perRefCorreg1 = ObtenerValorEnCadena(objPCM.perRefCorreg1);
        //    InformacionCliente.perRefCorreg1Dsc = ObtenerValorEnCadena(objPCM.perRefCorreg1Dsc);
        //    InformacionCliente.perRefCorreg2 = ObtenerValorEnCadena(objPCM.perRefCorreg2);
        //    InformacionCliente.perRefCorreg2Dsc = ObtenerValorEnCadena(objPCM.perRefCorreg2Dsc);
        //    InformacionCliente.perRefCountry1 = ObtenerValorEnCadena(objPCM.perRefCountry1);
        //    InformacionCliente.perRefCountry2 = ObtenerValorEnCadena(objPCM.perRefCountry2);
        //    InformacionCliente.perRefDistrit1 = ObtenerValorEnCadena(objPCM.perRefDistrit1);
        //    InformacionCliente.perRefDistrit1Dsc = ObtenerValorEnCadena(objPCM.perRefDistrit1Dsc);
        //    InformacionCliente.perRefDistrit2 = ObtenerValorEnCadena(objPCM.perRefDistrit2);
        //    InformacionCliente.perRefDistrit2Dsc = ObtenerValorEnCadena(objPCM.perRefDistrit2Dsc);
        //    InformacionCliente.perRefHouseNum1 = ObtenerValorEnCadena(objPCM.perRefHouseNum1);
        //    InformacionCliente.perRefHouseNum2 = ObtenerValorEnCadena(objPCM.perRefHouseNum2);
        //    InformacionCliente.perRefName1 = ObtenerValorEnCadena(objPCM.perRefName1);
        //    InformacionCliente.perRefName2 = ObtenerValorEnCadena(objPCM.perRefName2);
        //    InformacionCliente.perRefPhoneNum1 = ObtenerValorEnCadena(objPCM.perRefPhoneNum1);
        //    InformacionCliente.perRefPhoneNum2 = ObtenerValorEnCadena(objPCM.perRefPhoneNum2);
        //    InformacionCliente.perRefPoBox1 = ObtenerValorEnCadena(objPCM.perRefPoBox1);
        //    InformacionCliente.perRefPoBox2 = ObtenerValorEnCadena(objPCM.perRefPoBox2);
        //    InformacionCliente.perRefProvince1 = ObtenerValorEnCadena(objPCM.perRefProvince1);
        //    InformacionCliente.perRefProvince1Dsc = ObtenerValorEnCadena(objPCM.perRefProvince1Dsc);
        //    InformacionCliente.perRefProvince2 = ObtenerValorEnCadena(objPCM.perRefProvince2);
        //    InformacionCliente.perRefProvince2Dsc = ObtenerValorEnCadena(objPCM.perRefProvince2Dsc);
        //    InformacionCliente.perRefStreet1 = ObtenerValorEnCadena(objPCM.perRefStreet1);
        //    InformacionCliente.perRefStreet2 = ObtenerValorEnCadena(objPCM.perRefStreet2);
        //    InformacionCliente.perRefZipCode1 = ObtenerValorEnCadena(objPCM.perRefZipCode1);
        //    InformacionCliente.perRefZipCode2 = ObtenerValorEnCadena(objPCM.perRefZipCode2);
        //    InformacionCliente.poBox = ObtenerValorEnCadena(objPCM.poBox);
        //    InformacionCliente.position = ObtenerValorEnCadena(objPCM.position);
        //    InformacionCliente.positionDsc = ObtenerValorEnCadena(objPCM.positionDsc);
        //    InformacionCliente.previusJEntryDate = ObtenerValorEnCadena(objPCM.previusJEntryDate);
        //    InformacionCliente.profession = ObtenerValorEnCadena(objPCM.profession);
        //    InformacionCliente.professionDesc = ObtenerValorEnCadena(objPCM.professionDesc);
        //    InformacionCliente.province = ObtenerValorEnCadena(objPCM.province);
        //    InformacionCliente.ProvinceDesc = ObtenerValorEnCadena(objPCM.ProvinceDesc);
        //    InformacionCliente.referBy = ObtenerValorEnCadena(objPCM.referBy);
        //    InformacionCliente.referByDsc = ObtenerValorEnCadena(objPCM.referByDsc);
        //    InformacionCliente.referByN = ObtenerValorEnCadena(objPCM.referByN);
        //    InformacionCliente.relationType = ObtenerValorEnCadena(objPCM.relationType);
        //    InformacionCliente.residencyCountry = ObtenerValorEnCadena(objPCM.residencyCountry);
        //    InformacionCliente.residencyCountryDesc = ObtenerValorEnCadena(objPCM.residencyCountryDesc);
        //    InformacionCliente.resident = ObtenerValorEnCadena(objPCM.resident);
        //    InformacionCliente.riskLevel = ObtenerValorEnCadena(objPCM.riskLevel);
        //    InformacionCliente.riskLevelDsc = ObtenerValorEnCadena(objPCM.riskLevelDsc);
        //    InformacionCliente.secondLastName = ObtenerValorEnCadena(objPCM.secondLastName);
        //    InformacionCliente.secondName = ObtenerValorEnCadena(objPCM.secondName);
        //    InformacionCliente.secondOfficer = ObtenerValorEnCadena(objPCM.secondOfficer);
        //    InformacionCliente.secondOfficerDesc = ObtenerValorEnCadena(objPCM.secondOfficerDesc);
        //    InformacionCliente.sex = ObtenerValorEnCadena(objPCM.sex);
        //    InformacionCliente.shortName = ObtenerValorEnCadena(objPCM.shortName);
        //    InformacionCliente.street = ObtenerValorEnCadena(objPCM.street);
        //    InformacionCliente.taxes = ObtenerValorEnCadena(objPCM.taxes);
        //    InformacionCliente.user = ObtenerValorEnCadena(objPCM.user);
        //    InformacionCliente.zipCode = ObtenerValorEnCadena(objPCM.zipCode);


        //}

        ///// <summary>
        ///// Cuenta registrada :: Transforma la informacio de un objeto tipo AccountsMessage a un objeto tipo IntegracionInformacionAccountServices
        ///// </summary>
        ///// <param name="objAMOutput"></param>
        ///// <param name="InformacionCuentaCliente"></param>
        //private void TransformarInformacionCuenta(WSIntegracionCoreBancario.AccountServices.AccountsMessage objAMOutput, ref IntegracionInformacionAccountServices InformacionCuentaCliente)
        //{
        //    InformacionCuentaCliente.user = ObtenerValorEnCadena(objAMOutput.user);
        //    InformacionCuentaCliente.accountNumber = ObtenerValorEnCadena(objAMOutput.accountNumber);
        //    InformacionCuentaCliente.customerNumber = ObtenerValorEnCadena(objAMOutput.customerNumber);
        //    InformacionCuentaCliente.customerId = ObtenerValorEnCadena(objAMOutput.customerId);
        //    InformacionCuentaCliente.productCode = ObtenerValorEnCadena(objAMOutput.productCode);
        //    InformacionCuentaCliente.bank = ObtenerValorEnCadena(objAMOutput.bank);
        //    InformacionCuentaCliente.currency = ObtenerValorEnCadena(objAMOutput.currency);
        //    InformacionCuentaCliente.branch = ObtenerValorEnCadena(objAMOutput.branch);
        //    InformacionCuentaCliente.glAccount = ObtenerValorEnCadena(objAMOutput.glAccount);
        //    InformacionCuentaCliente.customerName = ObtenerValorEnCadena(objAMOutput.customerName);
        //    InformacionCuentaCliente.accountType = ObtenerValorEnCadena(objAMOutput.accountType);
        //    InformacionCuentaCliente.accountTypeDesc = ObtenerValorEnCadena(objAMOutput.accountTypeDesc);
        //    InformacionCuentaCliente.productCodeDesc = ObtenerValorEnCadena(objAMOutput.productCodeDesc);
        //    InformacionCuentaCliente.appCode = ObtenerValorEnCadena(objAMOutput.appCode);
        //    InformacionCuentaCliente.officialCode = ObtenerValorEnCadena(objAMOutput.officialCode);
        //    InformacionCuentaCliente.costCenter = ObtenerValorEnCadena(objAMOutput.costCenter);
        //    InformacionCuentaCliente.openingDate = ObtenerValorEnCadena(objAMOutput.openingDate);
        //    InformacionCuentaCliente.tariffTable = ObtenerValorEnCadena(objAMOutput.tariffTable);
        //    InformacionCuentaCliente.userCode1 = ObtenerValorEnCadena(objAMOutput.userCode1);
        //    InformacionCuentaCliente.userCode2 = ObtenerValorEnCadena(objAMOutput.userCode2);
        //    InformacionCuentaCliente.userCode3 = ObtenerValorEnCadena(objAMOutput.userCode3);
        //    InformacionCuentaCliente.userCode4 = ObtenerValorEnCadena(objAMOutput.userCode4);
        //    InformacionCuentaCliente.taxesWitholdingFlag = ObtenerValorEnCadena(objAMOutput.taxesWitholdingFlag);
        //    InformacionCuentaCliente.checkingType = ObtenerValorEnCadena(objAMOutput.checkingType);
        //    InformacionCuentaCliente.minimumCheckingStock = ObtenerValorEnCadena(objAMOutput.minimumCheckingStock);
        //    InformacionCuentaCliente.serviceChargesFlag = ObtenerValorEnCadena(objAMOutput.serviceChargesFlag);
        //    InformacionCuentaCliente.overdraftsChargesFlag = ObtenerValorEnCadena(objAMOutput.overdraftsChargesFlag);
        //    InformacionCuentaCliente.overdraftAmountUsed = ObtenerValorEnCadena(objAMOutput.overdraftAmountUsed);
        //    InformacionCuentaCliente.overdraftFrecuency = ObtenerValorEnCadena(objAMOutput.overdraftFrecuency);
        //    InformacionCuentaCliente.chargesPaymentDay = ObtenerValorEnCadena(objAMOutput.chargesPaymentDay);
        //    InformacionCuentaCliente.accountStatementRetentionFlag = ObtenerValorEnCadena(objAMOutput.accountStatementRetentionFlag);
        //    InformacionCuentaCliente.accountStatementFrecuency = ObtenerValorEnCadena(objAMOutput.accountStatementFrecuency);
        //    InformacionCuentaCliente.accountStatementPrintingDay = ObtenerValorEnCadena(objAMOutput.accountStatementPrintingDay);
        //    InformacionCuentaCliente.accountStatementType = ObtenerValorEnCadena(objAMOutput.accountStatementType);
        //    InformacionCuentaCliente.consolidatedStatementFlag = ObtenerValorEnCadena(objAMOutput.consolidatedStatementFlag);
        //    InformacionCuentaCliente.dailyStatementAccountVia = ObtenerValorEnCadena(objAMOutput.dailyStatementAccountVia);
        //    InformacionCuentaCliente.clientLinMultiuse = ObtenerValorEnCadena(objAMOutput.clientLinMultiuse);
        //    InformacionCuentaCliente.clientLinNumber = ObtenerValorEnCadena(objAMOutput.clientLinNumber);
        //    InformacionCuentaCliente.sendingChannel = ObtenerValorEnCadena(objAMOutput.sendingChannel);
        //    InformacionCuentaCliente.personalizationCheck1 = ObtenerValorEnCadena(objAMOutput.personalizationCheck1);
        //    InformacionCuentaCliente.personalizationCheck2 = ObtenerValorEnCadena(objAMOutput.personalizationCheck2);
        //    InformacionCuentaCliente.checkingChargesFlag = ObtenerValorEnCadena(objAMOutput.checkingChargesFlag);
        //    InformacionCuentaCliente.checkingChargesRestriction = ObtenerValorEnCadena(objAMOutput.checkingChargesRestriction);
        //    InformacionCuentaCliente.interestPaymentFlag = ObtenerValorEnCadena(objAMOutput.interestPaymentFlag);
        //    InformacionCuentaCliente.accountStatus = ObtenerValorEnCadena(objAMOutput.accountStatus);
        //    InformacionCuentaCliente.mailingAddress = ObtenerValorEnCadena(objAMOutput.mailingAddress);
        //    InformacionCuentaCliente.creditLineNumber = ObtenerValorEnCadena(objAMOutput.creditLineNumber);
        //    InformacionCuentaCliente.creditLineType = ObtenerValorEnCadena(objAMOutput.creditLineType);


        //}

        //#endregion

        //private int ObtenerValorNumericoInt(string valorInt)
        //{
        //    int valorResultado = 0;

        //    try
        //    {
        //        if (!String.IsNullOrEmpty(valorInt))
        //            valorResultado = Convert.ToInt32(valorInt);
        //    }
        //    catch
        //    { }
        //    return valorResultado;
        //}

        //private Int64 ObtenerValorNumericoInt64(string valor)
        //{
        //    Int64 valorResultado = 0;

        //    try
        //    {
        //        if (!String.IsNullOrEmpty(valor))
        //            valorResultado = Int64.Parse(valor);
        //    }
        //    catch
        //    { }

        //    return valorResultado;
        //}

        //private string ObtenerValorCadena(string valor)
        //{
        //    string valorResultado = string.Empty;

        //    try
        //    {
        //        if (!String.IsNullOrEmpty(valor))
        //            valorResultado = valor;
        //    }
        //    catch
        //    { }

        //    return valorResultado;
        //}

        //private float ObtenerValorFloat(string valor)
        //{
        //    float valorResultado = 0;

        //    try
        //    {
        //        if (!String.IsNullOrEmpty(valor))
        //        {
        //            valorResultado = (float)Convert.ToDouble(valor);
        //        }
        //    }
        //    catch
        //    { }

        //    return valorResultado;
        //}

        //private string ObtenerValorEnCadena(object valor)
        //{
        //    string valorResultado = string.Empty;

        //    try
        //    {
        //        if (valor != null)
        //            valorResultado = valor.ToString();
        //    }
        //    catch
        //    { }

        //    return valorResultado;
        //}

        #endregion

        #region MetodosNuevosWS

        [WebMethod(Description = "Obtiene información del una cliente natural", MessageName = "ConsultaClienteNatural")]
        public Mensaje ConsultarInformacionClinteNaturalIBS(string user, string idNumber, string idCountry, ref IntegracionInformacionCustomerServicesCNatural InformacionClienteNatural)
        // public Mensaje ConsultarInformacionClinteNaturalIBS(string user, string idNumber, string idCountry)
        {
            Mensaje retMensaje = new Mensaje();
            WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage objPCMResultado = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            //IntegracionInformacionCustomerServicesCNatural InformacionClienteNatural = new IntegracionInformacionCustomerServicesCNatural();

            try
            {
                objCIM.idCountry = idCountry;
                objCIM.idNumber = idNumber;
                objCIM.idType = "CIP";
                objCIM.user = user;
                objPCMResultado = objCustomerServices.personalCustomerInquiry(objCIM);

                objPCMResultado.ParseMessageTo(InformacionClienteNatural);

                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //InformacionClienteNatural.addressLine = objPCMResultado.addressLine.ToString();
                //InformacionClienteNatural.birthDate = objPCMResultado.birthDate.ToString();
                //InformacionClienteNatural.birthDateDay = objPCMResultado.birthDateDay.ToString();
                //InformacionClienteNatural.birthDateMonth = objPCMResultado.birthDateMonth.ToString();
                //InformacionClienteNatural.birthDateYear = objPCMResultado.birthDateYear.ToString();
                //InformacionClienteNatural.branch = objPCMResultado.branch.ToString();
                //InformacionClienteNatural.businessCode = objPCMResultado.businessCode.ToString();
                //InformacionClienteNatural.businessCodeDesc = objPCMResultado.businessCodeDesc.ToString();
                //InformacionClienteNatural.businessType = objPCMResultado.businessType.ToString();
                //InformacionClienteNatural.businessTypeDesc = objPCMResultado.businessTypeDesc.ToString();
                //InformacionClienteNatural.celularPhoneNum = objPCMResultado.celularPhoneNum.ToString();
                //InformacionClienteNatural.channelType = objPCMResultado.channelType.ToString();
                //InformacionClienteNatural.channelTypeDesc = objPCMResultado.channelTypeDesc.ToString();
                //InformacionClienteNatural.city = objPCMResultado.city.ToString();
                //InformacionClienteNatural.classification = objPCMResultado.classification.ToString();
                //InformacionClienteNatural.classificationDesc = objPCMResultado.classificationDesc.ToString();
                //InformacionClienteNatural.classificationForm = objPCMResultado.classificationForm.ToString();
                //InformacionClienteNatural.clientClass = objPCMResultado.clientClass.ToString();
                //InformacionClienteNatural.clientStatus = objPCMResultado.clientStatus.ToString();
                //InformacionClienteNatural.clientType = objPCMResultado.clientType.ToString();
                //InformacionClienteNatural.companyAddress = objPCMResultado.companyAddress.ToString();
                //InformacionClienteNatural.companyCharges = objPCMResultado.companyCharges.ToString();
                //InformacionClienteNatural.companyInfo = objPCMResultado.companyInfo.ToString();
                //InformacionClienteNatural.companyName = objPCMResultado.companyName.ToString();
                //InformacionClienteNatural.companyRuc = objPCMResultado.companyRuc.ToString();
                //InformacionClienteNatural.companyType = objPCMResultado.companyType.ToString();
                //InformacionClienteNatural.contractType = objPCMResultado.contractType.ToString();
                //InformacionClienteNatural.correg = objPCMResultado.correg.ToString();
                //InformacionClienteNatural.corregDesc = objPCMResultado.corregDesc.ToString();
                //InformacionClienteNatural.country = objPCMResultado.country.ToString();
                //InformacionClienteNatural.countryDesc = objPCMResultado.countryDesc.ToString();
                //InformacionClienteNatural.countryOfBirth = objPCMResultado.countryOfBirth.ToString();
                //InformacionClienteNatural.countryOfBirthDesc = objPCMResultado.countryOfBirthDesc.ToString();
                //InformacionClienteNatural.currentIncome = objPCMResultado.currentIncome.ToString();
                //InformacionClienteNatural.currentJEntryDate = objPCMResultado.currentJEntryDate.ToString();
                //InformacionClienteNatural.currentJEntryDay = objPCMResultado.currentJEntryDay.ToString();
                //InformacionClienteNatural.currentJEntryMonth = objPCMResultado.currentJEntryMonth.ToString();
                //InformacionClienteNatural.currentJEntryYear = objPCMResultado.currentJEntryYear.ToString();
                //InformacionClienteNatural.customerNumber = objPCMResultado.customerNumber.ToString();
                //InformacionClienteNatural.customerType = objPCMResultado.customerType.ToString();
                //InformacionClienteNatural.customerTypeSel = objPCMResultado.customerTypeSel.IsNull();
                //InformacionClienteNatural.debitCard = objPCMResultado.debitCard.ToString();
                //InformacionClienteNatural.dependents = objPCMResultado.dependents.ToString();
                //InformacionClienteNatural.discountCompanyCode = objPCMResultado.discountCompanyCode.ToString();
                //InformacionClienteNatural.discountCompanyDsc = objPCMResultado.discountCompanyDsc.ToString();
                //InformacionClienteNatural.distrit = objPCMResultado.distrit.ToString();
                //InformacionClienteNatural.distritDesc = objPCMResultado.distritDesc.ToString();
                //InformacionClienteNatural.educationalExpenses = objPCMResultado.educationalExpenses.ToString();
                //InformacionClienteNatural.educationLevel = objPCMResultado.educationLevel.ToString();
                //InformacionClienteNatural.educationLevelDesc = objPCMResultado.educationLevelDesc.ToString();
                //InformacionClienteNatural.email = objPCMResultado.email.ToString();
                //InformacionClienteNatural.employeeNumber = objPCMResultado.employeeNumber.ToString();
                //InformacionClienteNatural.employmentTime = objPCMResultado.employmentTime.ToString();
                //InformacionClienteNatural.familiarRelationType = objPCMResultado.familiarRelationType.ToString();
                //InformacionClienteNatural.faxNumber = objPCMResultado.faxNumber.ToString();
                //InformacionClienteNatural.firstContactDateDay = objPCMResultado.firstContactDateDay.ToString();
                //InformacionClienteNatural.firstContactDateMont = objPCMResultado.firstContactDateMont.ToString();
                //InformacionClienteNatural.firstContactDateYear = objPCMResultado.firstContactDateYear.ToString();
                //InformacionClienteNatural.firstLastName = objPCMResultado.firstLastName.ToString();
                //InformacionClienteNatural.firstName = objPCMResultado.firstName.ToString();
                //InformacionClienteNatural.floorLevel = objPCMResultado.floorLevel.ToString();
                //InformacionClienteNatural.fuente = objPCMResultado.fuente.IsNull();
                //InformacionClienteNatural.groupNumber = objPCMResultado.groupNumber.ToString();
                //InformacionClienteNatural.houseNumber = objPCMResultado.houseNumber.ToString();
                //InformacionClienteNatural.housePhoneNum = objPCMResultado.housePhoneNum.ToString();
                //InformacionClienteNatural.idContraloria = objPCMResultado.idContraloria.ToString();
                //InformacionClienteNatural.idCountry = objPCMResultado.idCountry.ToString();
                //InformacionClienteNatural.idCountry4 = objPCMResultado.idCountry4.ToString();
                //InformacionClienteNatural.idCountryDesc4 = objPCMResultado.idCountryDesc4.ToString();
                //InformacionClienteNatural.idNumber = objPCMResultado.idNumber.ToString();
                //InformacionClienteNatural.idNumber4 = objPCMResultado.idNumber4.ToString();
                //InformacionClienteNatural.idType = objPCMResultado.idType.ToString();
                //InformacionClienteNatural.idType4 = objPCMResultado.idType4.ToString();
                //InformacionClienteNatural.idTypeDesc = objPCMResultado.idTypeDesc.ToString();
                //InformacionClienteNatural.idTypeDesc4 = objPCMResultado.idTypeDesc4.ToString();
                //InformacionClienteNatural.incomeLevel = objPCMResultado.incomeLevel.ToString();
                //InformacionClienteNatural.incomeSource = objPCMResultado.incomeSource.ToString();
                //InformacionClienteNatural.incomeSourceDesc = objPCMResultado.incomeSourceDesc.ToString();
                //InformacionClienteNatural.incomeType = objPCMResultado.incomeType.ToString();
                //InformacionClienteNatural.indicador = objPCMResultado.indicador.ToString();
                //InformacionClienteNatural.industryCode = objPCMResultado.industryCode.ToString();
                //InformacionClienteNatural.industryCodeDesc = objPCMResultado.industryCodeDesc.ToString();
                //InformacionClienteNatural.initialCapital = objPCMResultado.initialCapital.ToString();
                //InformacionClienteNatural.inquiryLevel = objPCMResultado.inquiryLevel.ToString();
                //InformacionClienteNatural.language = objPCMResultado.language.ToString();
                //InformacionClienteNatural.legalName = objPCMResultado.legalName.ToString();
                //InformacionClienteNatural.legalStatus = objPCMResultado.legalStatus.ToString();
                //InformacionClienteNatural.longIdNumber = objPCMResultado.longIdNumber.ToString();
                //InformacionClienteNatural.longIdTypeDesc = objPCMResultado.longIdTypeDesc.ToString();
                //InformacionClienteNatural.mailingCode = objPCMResultado.mailingCode.ToString();
                //InformacionClienteNatural.mailingCodeDesc = objPCMResultado.mailingCodeDesc.ToString();
                //InformacionClienteNatural.mainOfficer = objPCMResultado.mainOfficer.ToString();
                //InformacionClienteNatural.mainOfficerDesc = objPCMResultado.mainOfficerDesc.ToString();
                //InformacionClienteNatural.marriedName = objPCMResultado.marriedName.ToString();
                //InformacionClienteNatural.municipality = objPCMResultado.municipality.ToString();
                //InformacionClienteNatural.municipalityDesc = objPCMResultado.municipalityDesc.ToString();
                //InformacionClienteNatural.nacionalityDesc = objPCMResultado.nacionalityDesc.ToString();
                //InformacionClienteNatural.nationality = objPCMResultado.nationality.ToString();
                //InformacionClienteNatural.netPatrimony = objPCMResultado.netPatrimony.ToString();
                //InformacionClienteNatural.officeNumber = objPCMResultado.officeNumber.IsNull();
                //InformacionClienteNatural.officePhoneNum = objPCMResultado.officePhoneNum.ToString();
                //InformacionClienteNatural.otherExpenses = objPCMResultado.otherExpenses.ToString();
                //InformacionClienteNatural.otherIncome = objPCMResultado.otherIncome.ToString();
                //InformacionClienteNatural.otherIncomeSource = objPCMResultado.otherIncomeSource.ToString();
                //InformacionClienteNatural.parish = objPCMResultado.parish.ToString();
                //InformacionClienteNatural.parishDesc = objPCMResultado.parishDesc.ToString();
                //InformacionClienteNatural.payDay = objPCMResultado.payDay.ToString();
                //InformacionClienteNatural.poBox = objPCMResultado.poBox.ToString();
                //InformacionClienteNatural.position = objPCMResultado.position.ToString();
                //InformacionClienteNatural.positionDesc = objPCMResultado.positionDesc.ToString();
                //InformacionClienteNatural.previousJEndDay = objPCMResultado.previousJEndDay.ToString();
                //InformacionClienteNatural.previousJEndMonth = objPCMResultado.previousJEndMonth.ToString();
                //InformacionClienteNatural.previousJEndYear = objPCMResultado.previousJEndYear.ToString();
                //InformacionClienteNatural.previousJEntryDay = objPCMResultado.previousJEntryDay.ToString();
                //InformacionClienteNatural.previousJEntryMonth = objPCMResultado.previousJEntryMonth.ToString();
                //InformacionClienteNatural.previousJEntryYear = objPCMResultado.previousJEntryYear.ToString();
                //InformacionClienteNatural.previsionTable = objPCMResultado.previsionTable.ToString();
                //InformacionClienteNatural.profession = objPCMResultado.profession.ToString();
                //InformacionClienteNatural.professionDesc = objPCMResultado.professionDesc.ToString();
                //InformacionClienteNatural.propertyType = objPCMResultado.propertyType.ToString();
                //InformacionClienteNatural.province = objPCMResultado.province.ToString();
                //InformacionClienteNatural.provinceDesc = objPCMResultado.provinceDesc.ToString();
                //InformacionClienteNatural.referBy = objPCMResultado.referBy.ToString();
                //InformacionClienteNatural.referByDesc = objPCMResultado.referByDesc.IsNull();
                //InformacionClienteNatural.referByName = objPCMResultado.referByName.ToString();
                //InformacionClienteNatural.relation = objPCMResultado.relation.ToString();
                //InformacionClienteNatural.relationDesc = objPCMResultado.relationDesc.ToString();
                //InformacionClienteNatural.relationType = objPCMResultado.relationType.ToString();
                //InformacionClienteNatural.rentAmount = objPCMResultado.rentAmount.ToString();
                //InformacionClienteNatural.rentType = objPCMResultado.rentType.ToString();
                //InformacionClienteNatural.residencyCountry = objPCMResultado.residencyCountry.ToString();
                //InformacionClienteNatural.residencyCountryDesc = objPCMResultado.residencyCountryDesc.ToString();
                //InformacionClienteNatural.resident = objPCMResultado.resident.ToString();
                //InformacionClienteNatural.riskLevel = objPCMResultado.riskLevel.ToString();
                //InformacionClienteNatural.riskLevelDesc = objPCMResultado.riskLevelDesc.ToString();
                //InformacionClienteNatural.salesChannel = objPCMResultado.salesChannel.ToString();
                //InformacionClienteNatural.salesChannelDesc = objPCMResultado.salesChannelDesc.ToString();
                //InformacionClienteNatural.secondIdCountry = objPCMResultado.secondIdCountry.ToString();
                //InformacionClienteNatural.secondIdCountryDesc = objPCMResultado.secondIdCountryDesc.ToString();
                //InformacionClienteNatural.secondIdNumber = objPCMResultado.secondIdNumber.ToString();
                //InformacionClienteNatural.secondIdType = objPCMResultado.secondIdType.ToString();
                //InformacionClienteNatural.secondIdTypeDesc = objPCMResultado.secondIdTypeDesc.ToString();
                //InformacionClienteNatural.secondLastName = objPCMResultado.secondLastName.ToString();
                //InformacionClienteNatural.secondName = objPCMResultado.secondName.ToString();
                //InformacionClienteNatural.secondOfficer = objPCMResultado.secondOfficer.ToString();
                //InformacionClienteNatural.secondOfficerDesc = objPCMResultado.secondOfficerDesc.ToString();
                //InformacionClienteNatural.sex = objPCMResultado.sex.ToString();
                //InformacionClienteNatural.shortIdCountry = objPCMResultado.shortIdCountry.ToString();
                //InformacionClienteNatural.shortIdNumber = objPCMResultado.shortIdNumber.ToString();
                //InformacionClienteNatural.shortIdType = objPCMResultado.shortIdType.ToString();
                //InformacionClienteNatural.shortName = objPCMResultado.shortName.ToString();
                //InformacionClienteNatural.socialSecurityNumber = objPCMResultado.socialSecurityNumber.ToString();
                //InformacionClienteNatural.specialInstructions = objPCMResultado.specialInstructions.ToString();
                //InformacionClienteNatural.street = objPCMResultado.street.ToString();
                //InformacionClienteNatural.taxes = objPCMResultado.taxes.ToString();
                //InformacionClienteNatural.thirdIdCountry = objPCMResultado.thirdIdCountry.ToString();
                //InformacionClienteNatural.thirdIdCountryDesc = objPCMResultado.thirdIdCountryDesc.ToString();
                //InformacionClienteNatural.thirdIdNumber = objPCMResultado.thirdIdNumber.ToString();
                //InformacionClienteNatural.thirdIdType = objPCMResultado.thirdIdType.ToString();
                //InformacionClienteNatural.thirdIdTypeDesc = objPCMResultado.thirdIdTypeDesc.ToString();
                //InformacionClienteNatural.user = objPCMResultado.user.ToString();
                //InformacionClienteNatural.userCode6Desc = objPCMResultado.userCode6Desc.ToString();
                //InformacionClienteNatural.zipCode = objPCMResultado.zipCode.ToString();
                #endregion

            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;


            }

            return retMensaje;
        }

        [WebMethod(Description = "Obtiene información del una cliente juridico", MessageName = "ConsultaClienteJuridico")]
        public Mensaje ConsultarInformacionClienteJuridicoIBS(string user, string idNumber, string idCountry, ref IntegracionInformacionCustomerServicesCJuridico InformacionClienteJuridico)
        //public Mensaje ConsultarInformacionClienteJuridicoIBS(string user, string idNumber, string idCountry)
        {

            Mensaje retMensaje = new Mensaje();
            WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage objCCMResultado = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            // IntegracionInformacionCustomerServicesCJuridico InformacionClienteJuridico = new IntegracionInformacionCustomerServicesCJuridico();
            try
            {
                objCIM.idCountry = idCountry;
                objCIM.idNumber = idNumber;
                objCIM.idType = "RUC";
                objCIM.user = user;

                objCCMResultado = objCustomerServices.corporateCustomerInquiry(objCIM);
                objCCMResultado.ParseMessageTo(InformacionClienteJuridico);

                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //InformacionClienteJuridico.addressLine1 = objCCMResultado.addressLine1.ToString();
                //InformacionClienteJuridico.addressLine2 = objCCMResultado.addressLine2.ToString();
                //InformacionClienteJuridico.addressLine3 = objCCMResultado.addressLine3.ToString();
                //InformacionClienteJuridico.addressVerbalRef = objCCMResultado.addressVerbalRef.ToString();
                //InformacionClienteJuridico.appPending = objCCMResultado.appPending.IsNull();
                //InformacionClienteJuridico.aptoOffice = objCCMResultado.aptoOffice.IsNull();
                //InformacionClienteJuridico.automaticAppFlag = objCCMResultado.automaticAppFlag;
                //InformacionClienteJuridico.bankingType = objCCMResultado.bankingType;
                //InformacionClienteJuridico.building = objCCMResultado.building;
                //InformacionClienteJuridico.businessArea = objCCMResultado.businessArea;
                //InformacionClienteJuridico.businessCode = objCCMResultado.businessCode;
                //InformacionClienteJuridico.businessCodeDesc = objCCMResultado.businessCodeDesc;
                //InformacionClienteJuridico.businessTypeDesc = objCCMResultado.businessTypeDesc;
                //InformacionClienteJuridico.businessUnity = objCCMResultado.businessUnity;
                //InformacionClienteJuridico.capitalPaid = objCCMResultado.capitalPaid.HasValue == true ? "0" : objCCMResultado.capitalPaid.ToString();
                //InformacionClienteJuridico.celularPhoneNumber = objCCMResultado.celularPhoneNumber.HasValue == true ? "0" : objCCMResultado.celularPhoneNumber.ToString();
                //InformacionClienteJuridico.city = objCCMResultado.city;
                //InformacionClienteJuridico.classification = objCCMResultado.classification;
                //InformacionClienteJuridico.classificationDesc = objCCMResultado.classificationDesc;
                //InformacionClienteJuridico.classificationForm = objCCMResultado.classificationForm;
                //InformacionClienteJuridico.clientClass = objCCMResultado.clientClass;
                //InformacionClienteJuridico.clientOperativeType = objCCMResultado.clientOperativeType;
                //InformacionClienteJuridico.clientStatus = objCCMResultado.clientStatus;
                //InformacionClienteJuridico.companySize = objCCMResultado.companySize;
                //InformacionClienteJuridico.condominium = objCCMResultado.condominium;
                //InformacionClienteJuridico.correg = objCCMResultado.correg;
                //InformacionClienteJuridico.corregDesc = objCCMResultado.corregDesc;
                //InformacionClienteJuridico.country = objCCMResultado.country;
                //InformacionClienteJuridico.countryOfBirthDesc = objCCMResultado.countryOfBirthDesc;
                //InformacionClienteJuridico.customerNumber = objCCMResultado.customerNumber.HasValue == true ? "0" : objCCMResultado.customerNumber.ToString();
                //InformacionClienteJuridico.customerType = objCCMResultado.customerType;
                //InformacionClienteJuridico.debitCardNumber = objCCMResultado.debitCardNumber.HasValue == true ? "0" : objCCMResultado.debitCardNumber.ToString();
                //InformacionClienteJuridico.discountCompanyDesc = objCCMResultado.discountCompanyDesc;
                //InformacionClienteJuridico.distrit = objCCMResultado.distrit;
                //InformacionClienteJuridico.distritDesc = objCCMResultado.distritDesc;
                //InformacionClienteJuridico.educationLevelDesc = objCCMResultado.educationLevelDesc;
                //InformacionClienteJuridico.email = objCCMResultado.email;
                //InformacionClienteJuridico.faxNumber = objCCMResultado.faxNumber.HasValue == true ? "0" : objCCMResultado.faxNumber.ToString();
                //InformacionClienteJuridico.firstContact = string.Format("{0}{1}{2}", objCCMResultado.firstContact.year, objCCMResultado.firstContact.month, objCCMResultado.firstContact.day);
                //InformacionClienteJuridico.floorLevel = objCCMResultado.floorLevel;
                //InformacionClienteJuridico.folioNumber = objCCMResultado.folioNumber;

                //InformacionClienteJuridico.foundation = string.Format("{0}{1}{2}", objCCMResultado.foundation.year, objCCMResultado.foundation.month, objCCMResultado.foundation.day);
                //InformacionClienteJuridico.fourthIdCountry = objCCMResultado.fourthIdCountry;
                //InformacionClienteJuridico.fourthIdCountryDesc = objCCMResultado.fourthIdCountryDesc;
                //InformacionClienteJuridico.fourthIdNumber = objCCMResultado.fourthIdNumber;
                //InformacionClienteJuridico.fourthIdType = objCCMResultado.fourthIdType;
                //InformacionClienteJuridico.fourthIdTypeDesc = objCCMResultado.fourthIdTypeDesc;
                //InformacionClienteJuridico.groupNumber = string.IsNullOrEmpty(objCCMResultado.groupNumber) == true ? string.Empty : objCCMResultado.groupNumber.ToString(); ;
                //InformacionClienteJuridico.idCountry = objCCMResultado.idCountry;
                //InformacionClienteJuridico.idCountryDesc = objCCMResultado.idCountryDesc;
                //InformacionClienteJuridico.idNumber = objCCMResultado.idNumber;
                //InformacionClienteJuridico.idType = objCCMResultado.idType;
                //InformacionClienteJuridico.idTypeDesc = objCCMResultado.idTypeDesc;
                //InformacionClienteJuridico.incomeSource = objCCMResultado.incomeSource;
                //InformacionClienteJuridico.incomeSourceDesc = objCCMResultado.incomeSourceDesc;
                //InformacionClienteJuridico.industryCode = objCCMResultado.industryCode;
                //InformacionClienteJuridico.industryCodeDesc = objCCMResultado.industryCodeDesc;
                //InformacionClienteJuridico.initialCapital = objCCMResultado.initialCapital.HasValue == true ? "0" : objCCMResultado.initialCapital.ToString();
                //InformacionClienteJuridico.inquiryLevel = objCCMResultado.inquiryLevel.HasValue == true ? "0" : objCCMResultado.inquiryLevel.ToString();
                //InformacionClienteJuridico.inscription = string.Format("{0}{1}{2}", objCCMResultado.inscription.year, objCCMResultado.inscription.month, objCCMResultado.inscription.day);
                //InformacionClienteJuridico.inscriptionNumber = objCCMResultado.inscriptionNumber;
                //InformacionClienteJuridico.juridicalDistrict = objCCMResultado.juridicalDistrict;
                //InformacionClienteJuridico.languageIndicator = string.IsNullOrEmpty(objCCMResultado.languageIndicator) == true ? string.Empty : objCCMResultado.languageIndicator.ToString();
                //InformacionClienteJuridico.legalName = objCCMResultado.legalName;
                //InformacionClienteJuridico.mailingCode = objCCMResultado.mailingCode;
                //InformacionClienteJuridico.mailingCodeDesc = objCCMResultado.mailingCodeDesc;
                //InformacionClienteJuridico.mainOfficer = objCCMResultado.mainOfficer;
                //InformacionClienteJuridico.mainOfficerDesc = string.IsNullOrEmpty(objCCMResultado.mainOfficerDesc) == true ? string.Empty : objCCMResultado.mainOfficerDesc.ToString();
                //InformacionClienteJuridico.moreRecords = objCCMResultado.moreRecords;
                //InformacionClienteJuridico.municipality = objCCMResultado.municipality;
                //InformacionClienteJuridico.municipalityDesc = objCCMResultado.municipalityDesc;
                //InformacionClienteJuridico.nacionalityDesc = objCCMResultado.nacionalityDesc;
                //InformacionClienteJuridico.nationality = objCCMResultado.nationality;
                //InformacionClienteJuridico.numberOfShears = objCCMResultado.numberOfShears.HasValue == true ? "0" : objCCMResultado.numberOfShears.ToString();
                //InformacionClienteJuridico.officePhoneNumber1 = objCCMResultado.officePhoneNumber1.HasValue == true ? "0" : objCCMResultado.officePhoneNumber1.ToString();
                //InformacionClienteJuridico.officePhoneNumber2 = objCCMResultado.officePhoneNumber2.HasValue == true ? "0" : objCCMResultado.officePhoneNumber2.ToString();
                //InformacionClienteJuridico.originCountry = objCCMResultado.originCountry;
                //InformacionClienteJuridico.ownershipType = objCCMResultado.ownershipType;
                //InformacionClienteJuridico.parish = objCCMResultado.parish;
                //InformacionClienteJuridico.parishDesc = objCCMResultado.parishDesc;
                //InformacionClienteJuridico.poBox = objCCMResultado.poBox;
                //InformacionClienteJuridico.portfolioType = objCCMResultado.portfolioType;
                //InformacionClienteJuridico.positionDesc = objCCMResultado.positionDesc;
                //InformacionClienteJuridico.previousName = objCCMResultado.previousName;
                //InformacionClienteJuridico.previsionTable = objCCMResultado.previsionTable;
                //InformacionClienteJuridico.propertyType = objCCMResultado.propertyType;
                //InformacionClienteJuridico.provinceDesc = objCCMResultado.provinceDesc;
                //InformacionClienteJuridico.referBy = objCCMResultado.referBy;
                //InformacionClienteJuridico.referByDesc = objCCMResultado.referByDesc;
                //InformacionClienteJuridico.referByName = objCCMResultado.referByName;
                //InformacionClienteJuridico.reference = objCCMResultado.reference;
                //InformacionClienteJuridico.region = objCCMResultado.region;
                //InformacionClienteJuridico.registerNumber = objCCMResultado.registerNumber;
                //InformacionClienteJuridico.relation = objCCMResultado.relation;
                //InformacionClienteJuridico.relationDesc = objCCMResultado.relationDesc;
                //InformacionClienteJuridico.residencyCountry = objCCMResultado.residencyCountry.IsNull();
                //InformacionClienteJuridico.residencyCountryDesc = objCCMResultado.residencyCountryDesc;
                //InformacionClienteJuridico.residentFlag = objCCMResultado.residentFlag;
                //InformacionClienteJuridico.riskCentral = objCCMResultado.riskCentral;
                //InformacionClienteJuridico.riskLevel = objCCMResultado.riskLevel;
                //InformacionClienteJuridico.riskLevelDesc = objCCMResultado.riskLevelDesc;
                //InformacionClienteJuridico.rollOverVolume = objCCMResultado.rollOverVolume;
                //InformacionClienteJuridico.salesLevel = objCCMResultado.salesLevel;
                //InformacionClienteJuridico.secondIdCountry = objCCMResultado.secondIdCountry;
                //InformacionClienteJuridico.secondIdCountryDesc = objCCMResultado.secondIdCountryDesc;
                //InformacionClienteJuridico.secondIdNumber = objCCMResultado.secondIdNumber;
                //InformacionClienteJuridico.secondIdType = objCCMResultado.secondIdType;
                //InformacionClienteJuridico.secondIdTypeDesc = objCCMResultado.secondIdTypeDesc;
                //InformacionClienteJuridico.secondOfficer = objCCMResultado.secondOfficer;
                //InformacionClienteJuridico.secondOfficerDesc = objCCMResultado.secondOfficerDesc;
                //InformacionClienteJuridico.shortName = objCCMResultado.shortName;
                //InformacionClienteJuridico.socioEconomicLevel = objCCMResultado.socioEconomicLevel;
                //string specialInstructionsList = string.Empty;
                //objCCMResultado.specialInstructions.ToList().ForEach(c => specialInstructionsList = c + ";");
                //InformacionClienteJuridico.specialInstructions = specialInstructionsList;
                //InformacionClienteJuridico.state = objCCMResultado.state;
                //InformacionClienteJuridico.stockHolders = objCCMResultado.stockHolders.HasValue == true ? "0" : objCCMResultado.stockHolders.ToString();
                //InformacionClienteJuridico.street = objCCMResultado.street;
                //InformacionClienteJuridico.subscribedCapital = objCCMResultado.subscribedCapital.HasValue == true ? "0" : objCCMResultado.subscribedCapital.ToString();
                //InformacionClienteJuridico.taxes = objCCMResultado.taxes;
                //InformacionClienteJuridico.thirdIdCountry = objCCMResultado.thirdIdCountry;
                //InformacionClienteJuridico.thirdIdCountryDesc = objCCMResultado.thirdIdCountryDesc;
                //InformacionClienteJuridico.thirdIdNumber = objCCMResultado.thirdIdNumber;
                //InformacionClienteJuridico.thirdIdType = objCCMResultado.thirdIdType;
                //InformacionClienteJuridico.thirdIdTypeDesc = objCCMResultado.thirdIdTypeDesc;
                //InformacionClienteJuridico.typeOfCorresBank = objCCMResultado.typeOfCorresBank;
                //InformacionClienteJuridico.user = objCCMResultado.user;
                //InformacionClienteJuridico.userCode6Desc = objCCMResultado.userCode6Desc;
                //InformacionClienteJuridico.userCode9Desc = objCCMResultado.userCode9Desc;
                //InformacionClienteJuridico.volumeNumber = objCCMResultado.volumeNumber;
                //InformacionClienteJuridico.yearsBusiness = objCCMResultado.yearsBusiness.ToString();
                //InformacionClienteJuridico.zipCode = objCCMResultado.zipCode;
                #endregion

            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        [WebMethod(Description = "Actualiza la información del una cliente natural", MessageName = "ActualizaClienteNatural")]
        public Mensaje ActualizarClienteNaturalIBS(IntegracionInformacionCustomerServicesCNatural informacionClienteNaturalInput, ref IntegracionInformacionCustomerServicesCNatural informacionClientNaturalOutput)
        //public Mensaje ActualizarClienteNaturalIBS()
        {

            WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage objPCMImput = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            #region TEST Creacion de Mensaje

            //IntegracionInformacionCustomerServicesCNatural informacionClienteNaturalInput = new IntegracionInformacionCustomerServicesCNatural();
            //IntegracionInformacionCustomerServicesCNatural informacionClientNaturalOutput = new IntegracionInformacionCustomerServicesCNatural();

            //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage TobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
            //WSIntegracionCoreBancario.CustomerService.CustomerService TobjCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            //WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage TobjCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage NewTobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();

            //IntegracionInformacionCustomerServicesCNatural TInformacionClienteNatural = new IntegracionInformacionCustomerServicesCNatural();
            //TobjCIM.idCountry = "PA";
            //TobjCIM.idNumber = "03--00104-000609";
            //TobjCIM.idType = "CIP";
            //TobjCIM.user = "user";
            //TobjPCMResultado = objCustomerServices.personalCustomerInquiry(TobjCIM);

            //TobjPCMResultado.ParseMessageTo(TInformacionClienteNatural);


            //TInformacionClienteNatural.ParseMessageTo(NewTobjPCMResultado);


            #endregion

            Mensaje retMensaje = new Mensaje();
            try
            {
                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //objPCMImput.addressLine = informacionClienteNaturalInput.addressLine.IsNull();
                //objPCMImput.birthDate = informacionClienteNaturalInput.birthDate.ToInteger();
                //objPCMImput.birthDateDay = informacionClienteNaturalInput.birthDateDay.ToInteger();
                //objPCMImput.birthDateMonth = informacionClienteNaturalInput.birthDateMonth.ToInteger();
                //objPCMImput.birthDateYear = informacionClienteNaturalInput.birthDateYear.ToInteger();
                //objPCMImput.branch = informacionClienteNaturalInput.branch.IsNull();
                //objPCMImput.businessCode = informacionClienteNaturalInput.businessCode.IsNull();
                //objPCMImput.businessCodeDesc = informacionClienteNaturalInput.businessCodeDesc.IsNull();
                //objPCMImput.businessType = informacionClienteNaturalInput.businessType.IsNull();
                //objPCMImput.businessTypeDesc = informacionClienteNaturalInput.businessTypeDesc.IsNull();
                //objPCMImput.celularPhoneNum = informacionClienteNaturalInput.celularPhoneNum.ToLong();
                //objPCMImput.channelType = informacionClienteNaturalInput.channelType.IsNull();
                //objPCMImput.channelTypeDesc = informacionClienteNaturalInput.channelTypeDesc.IsNull();
                //objPCMImput.city = informacionClienteNaturalInput.city.IsNull();
                //objPCMImput.classification = informacionClienteNaturalInput.classification.IsNull();


                //objPCMImput.classificationDesc = informacionClienteNaturalInput.classificationDesc.IsNull().IsNull();
                //objPCMImput.classificationForm = informacionClienteNaturalInput.classificationForm.IsNull();
                //objPCMImput.clientClass = informacionClienteNaturalInput.clientClass.IsNull();
                //objPCMImput.clientStatus = informacionClienteNaturalInput.clientStatus.IsNull();
                //objPCMImput.clientType = informacionClienteNaturalInput.clientType.IsNull();
                //objPCMImput.companyAddress = informacionClienteNaturalInput.companyAddress.IsNull();
                //objPCMImput.companyCharges = informacionClienteNaturalInput.companyCharges.IsNull();
                //objPCMImput.companyInfo = informacionClienteNaturalInput.companyInfo.IsNull();
                //objPCMImput.companyName = informacionClienteNaturalInput.companyName.IsNull();
                //objPCMImput.companyRuc = informacionClienteNaturalInput.companyRuc.IsNull();
                //objPCMImput.companyType = informacionClienteNaturalInput.companyType.IsNull();
                //objPCMImput.contractType = informacionClienteNaturalInput.contractType.IsNull();
                ////CORREGIMIENTO
                //objPCMImput.correg = informacionClienteNaturalInput.correg.ToString().IsNull();   //ojo 8002"
                //objPCMImput.corregDesc = informacionClienteNaturalInput.corregDesc.IsNull();

                //objPCMImput.country = informacionClienteNaturalInput.country.IsNull();
                //objPCMImput.countryDesc = informacionClienteNaturalInput.countryDesc.IsNull();
                //objPCMImput.countryOfBirth = informacionClienteNaturalInput.countryOfBirth.IsNull(); ;
                //objPCMImput.countryOfBirthDesc = informacionClienteNaturalInput.countryOfBirthDesc.IsNull(); ;
                //objPCMImput.currentIncome = informacionClienteNaturalInput.currentIncome.ToFLoat();
                //objPCMImput.currentJEntryDate = informacionClienteNaturalInput.currentJEntryDate.ToInteger();
                //objPCMImput.currentJEntryDay = informacionClienteNaturalInput.currentJEntryDay.ToInteger();
                //objPCMImput.currentJEntryMonth = informacionClienteNaturalInput.currentJEntryMonth.ToInteger();
                //objPCMImput.currentJEntryYear = informacionClienteNaturalInput.currentJEntryYear.ToInteger();
                //objPCMImput.customerNumber = informacionClienteNaturalInput.customerNumber.ToInteger();
                //objPCMImput.customerType = informacionClienteNaturalInput.customerType.IsNull();
                //objPCMImput.customerTypeSel = informacionClienteNaturalInput.customerTypeSel.IsNull();
                //objPCMImput.debitCard = informacionClienteNaturalInput.debitCard.IsNull();
                //objPCMImput.dependents = informacionClienteNaturalInput.dependents.ToInteger();
                //objPCMImput.discountCompanyCode = informacionClienteNaturalInput.discountCompanyCode.IsNull();
                //objPCMImput.discountCompanyDsc = informacionClienteNaturalInput.discountCompanyDsc.IsNull();
                ////DISTRITO
                //objPCMImput.distrit = informacionClienteNaturalInput.country.IsNull();
                //objPCMImput.distritDesc = informacionClienteNaturalInput.distritDesc.IsNull();
                //objPCMImput.educationalExpenses = informacionClienteNaturalInput.educationalExpenses.IsNull();
                //objPCMImput.educationLevel = informacionClienteNaturalInput.educationLevel.IsNull();
                //objPCMImput.educationLevelDesc = informacionClienteNaturalInput.educationLevelDesc.IsNull();
                //objPCMImput.email = informacionClienteNaturalInput.email.IsNull();
                //objPCMImput.employeeNumber = informacionClienteNaturalInput.employeeNumber.IsNull();
                //objPCMImput.employmentTime = informacionClienteNaturalInput.employmentTime.IsNull();
                //objPCMImput.familiarRelationType = informacionClienteNaturalInput.familiarRelationType.IsNull();
                //objPCMImput.faxNumber = informacionClienteNaturalInput.faxNumber.ToLong();
                //objPCMImput.firstContactDateDay = informacionClienteNaturalInput.firstContactDateDay.ToInteger();
                //objPCMImput.firstContactDateMont = informacionClienteNaturalInput.firstContactDateMont.ToInteger();
                //objPCMImput.firstContactDateYear = informacionClienteNaturalInput.firstContactDateYear.ToInteger();
                //objPCMImput.firstLastName = informacionClienteNaturalInput.firstLastName.IsNull();
                //objPCMImput.firstName = informacionClienteNaturalInput.firstName.IsNull();
                //objPCMImput.floorLevel = informacionClienteNaturalInput.floorLevel.IsNull();
                //objPCMImput.fuente = informacionClienteNaturalInput.fuente.IsNull();
                //objPCMImput.groupNumber = informacionClienteNaturalInput.groupNumber.ToInteger();
                //objPCMImput.houseNumber = informacionClienteNaturalInput.houseNumber.IsNull();
                //objPCMImput.housePhoneNum = informacionClienteNaturalInput.housePhoneNum.ToLong();
                //objPCMImput.idContraloria = informacionClienteNaturalInput.idContraloria.IsNull();
                //objPCMImput.idCountry = informacionClienteNaturalInput.idCountry.IsNull();
                //objPCMImput.idCountry4 = informacionClienteNaturalInput.idContraloria.IsNull();
                //objPCMImput.idCountryDesc4 = informacionClienteNaturalInput.idCountryDesc4.IsNull();
                //objPCMImput.idNumber = informacionClienteNaturalInput.idNumber.IsNull();
                //objPCMImput.idNumber4 = informacionClienteNaturalInput.idNumber4.IsNull();
                //objPCMImput.idType4 = informacionClienteNaturalInput.idType4.IsNull();
                //objPCMImput.idType = informacionClienteNaturalInput.idType.IsNull();
                //objPCMImput.idTypeDesc = informacionClienteNaturalInput.idTypeDesc.IsNull();
                //objPCMImput.idTypeDesc4 = informacionClienteNaturalInput.idTypeDesc4.IsNull();
                //objPCMImput.incomeLevel = informacionClienteNaturalInput.incomeLevel.IsNull();
                //objPCMImput.incomeSource = informacionClienteNaturalInput.incomeSource.IsNull();
                //objPCMImput.incomeSourceDesc = informacionClienteNaturalInput.incomeSourceDesc.IsNull();
                //objPCMImput.incomeType = informacionClienteNaturalInput.incomeType.IsNull();
                //objPCMImput.indicador = informacionClienteNaturalInput.indicador.IsNull();
                //objPCMImput.industryCode = informacionClienteNaturalInput.industryCode.IsNull();
                //objPCMImput.industryCodeDesc = informacionClienteNaturalInput.industryCodeDesc.IsNull();
                //objPCMImput.initialCapital = informacionClienteNaturalInput.initialCapital.IsNull();
                //objPCMImput.inquiryLevel = informacionClienteNaturalInput.inquiryLevel.IsNull();
                //objPCMImput.language = informacionClienteNaturalInput.language.IsNull();
                //objPCMImput.legalName = informacionClienteNaturalInput.legalName.IsNull();
                //objPCMImput.legalStatus = informacionClienteNaturalInput.legalStatus.IsNull();
                //objPCMImput.longIdNumber = informacionClienteNaturalInput.longIdNumber.IsNull();
                //objPCMImput.longIdTypeDesc = informacionClienteNaturalInput.longIdTypeDesc.IsNull();
                //objPCMImput.mailingCode = informacionClienteNaturalInput.mailingCode.IsNull();
                //objPCMImput.mailingCodeDesc = informacionClienteNaturalInput.mailingCodeDesc.IsNull();
                //objPCMImput.mainOfficer = informacionClienteNaturalInput.mainOfficer.IsNull();
                //objPCMImput.mainOfficerDesc = informacionClienteNaturalInput.mainOfficerDesc.IsNull();
                //objPCMImput.marriedName = informacionClienteNaturalInput.marriedName.IsNull();
                //objPCMImput.municipality = informacionClienteNaturalInput.municipality.IsNull();
                //objPCMImput.municipalityDesc = informacionClienteNaturalInput.municipalityDesc.IsNull();
                //objPCMImput.nacionalityDesc = informacionClienteNaturalInput.nacionalityDesc.IsNull();
                //objPCMImput.nationality = informacionClienteNaturalInput.nationality.IsNull();
                //objPCMImput.netPatrimony = informacionClienteNaturalInput.netPatrimony.IsNull();
                //objPCMImput.officeNumber = informacionClienteNaturalInput.officeNumber.IsNull();
                //objPCMImput.officePhoneNum = informacionClienteNaturalInput.officePhoneNum.ToLong();
                //objPCMImput.otherExpenses = informacionClienteNaturalInput.otherExpenses.IsNull();
                //objPCMImput.otherIncome = informacionClienteNaturalInput.otherIncome.IsNull();
                //objPCMImput.otherIncomeSource = informacionClienteNaturalInput.otherIncomeSource.IsNull();
                //objPCMImput.parish = informacionClienteNaturalInput.parish.IsNull();
                //objPCMImput.parishDesc = informacionClienteNaturalInput.parishDesc.IsNull();
                //objPCMImput.payDay = informacionClienteNaturalInput.payDay.IsNull();
                //objPCMImput.poBox = informacionClienteNaturalInput.poBox.IsNull();
                //objPCMImput.position = informacionClienteNaturalInput.position.IsNull();
                //objPCMImput.positionDesc = informacionClienteNaturalInput.positionDesc.IsNull();
                //objPCMImput.previousJEndDay = informacionClienteNaturalInput.previousJEndDay.ToInteger();
                //objPCMImput.previousJEndMonth = informacionClienteNaturalInput.previousJEndMonth.ToInteger();
                //objPCMImput.previousJEndYear = informacionClienteNaturalInput.previousJEndYear.ToInteger();
                //objPCMImput.previousJEntryDay = informacionClienteNaturalInput.previousJEntryDay.ToInteger();
                //objPCMImput.previousJEntryMonth = informacionClienteNaturalInput.previousJEntryMonth.ToInteger();
                //objPCMImput.previousJEntryYear = informacionClienteNaturalInput.previousJEntryYear.ToInteger();
                //objPCMImput.previsionTable = informacionClienteNaturalInput.previsionTable.IsNull();
                //objPCMImput.profession = informacionClienteNaturalInput.profession.IsNull();
                //objPCMImput.professionDesc = informacionClienteNaturalInput.professionDesc.IsNull();
                //objPCMImput.propertyType = informacionClienteNaturalInput.propertyType.IsNull();

                //objPCMImput.province = informacionClienteNaturalInput.province.IsNull();
                //objPCMImput.provinceDesc = informacionClienteNaturalInput.provinceDesc.IsNull();
                //objPCMImput.referBy = informacionClienteNaturalInput.referBy.IsNull();
                //objPCMImput.referByDesc = informacionClienteNaturalInput.referByDesc.IsNull();
                //objPCMImput.referByName = informacionClienteNaturalInput.referByName.IsNull();
                //objPCMImput.relation = informacionClienteNaturalInput.relation.IsNull();
                //objPCMImput.relationDesc = informacionClienteNaturalInput.relationDesc.IsNull();
                //objPCMImput.relationType = informacionClienteNaturalInput.relationType.IsNull();
                //objPCMImput.rentAmount = informacionClienteNaturalInput.rentAmount.IsNull();
                //objPCMImput.rentType = informacionClienteNaturalInput.rentType.IsNull();
                //objPCMImput.residencyCountry = informacionClienteNaturalInput.residencyCountry.IsNull();
                //objPCMImput.residencyCountryDesc = informacionClienteNaturalInput.residencyCountryDesc.IsNull();
                //objPCMImput.resident = informacionClienteNaturalInput.resident.IsNull();
                //objPCMImput.riskLevel = informacionClienteNaturalInput.riskLevel.IsNull();
                //objPCMImput.riskLevelDesc = informacionClienteNaturalInput.riskLevelDesc.IsNull();
                //objPCMImput.salesChannel = informacionClienteNaturalInput.salesChannel.IsNull();
                //objPCMImput.salesChannelDesc = informacionClienteNaturalInput.salesChannelDesc.IsNull();
                //objPCMImput.secondIdCountry = informacionClienteNaturalInput.secondIdCountry.IsNull();
                //objPCMImput.secondIdCountryDesc = informacionClienteNaturalInput.secondIdCountryDesc.IsNull();
                //objPCMImput.secondIdNumber = informacionClienteNaturalInput.secondIdNumber.IsNull();
                //objPCMImput.secondIdType = informacionClienteNaturalInput.secondIdType.IsNull();
                //objPCMImput.secondIdTypeDesc = informacionClienteNaturalInput.secondIdTypeDesc.IsNull();
                //objPCMImput.secondLastName = informacionClienteNaturalInput.secondLastName.IsNull();
                //objPCMImput.secondName = informacionClienteNaturalInput.secondName.IsNull();
                //objPCMImput.secondOfficer = informacionClienteNaturalInput.secondOfficer.IsNull();
                //objPCMImput.secondOfficerDesc = informacionClienteNaturalInput.secondOfficerDesc.IsNull();
                //objPCMImput.sex = informacionClienteNaturalInput.sex.IsNull();
                //objPCMImput.shortIdCountry = informacionClienteNaturalInput.shortIdCountry.IsNull();
                //objPCMImput.shortIdNumber = informacionClienteNaturalInput.shortIdNumber.IsNull();
                //objPCMImput.shortIdType = informacionClienteNaturalInput.shortIdType.IsNull();
                //objPCMImput.shortName = informacionClienteNaturalInput.shortName.IsNull();
                //objPCMImput.socialSecurityNumber = informacionClienteNaturalInput.socialSecurityNumber.IsNull();
                //objPCMImput.specialInstructions = informacionClienteNaturalInput.specialInstructions;
                //objPCMImput.street = informacionClienteNaturalInput.street.IsNull();
                //objPCMImput.taxes = informacionClienteNaturalInput.taxes.IsNull();
                //objPCMImput.thirdIdCountry = informacionClienteNaturalInput.thirdIdCountry.IsNull();
                //objPCMImput.thirdIdCountryDesc = informacionClienteNaturalInput.thirdIdCountryDesc.IsNull();
                //objPCMImput.thirdIdNumber = informacionClienteNaturalInput.thirdIdNumber.IsNull();
                //objPCMImput.thirdIdType = informacionClienteNaturalInput.thirdIdType.IsNull();
                //objPCMImput.thirdIdTypeDesc = informacionClienteNaturalInput.thirdIdTypeDesc.IsNull();
                //objPCMImput.user = informacionClienteNaturalInput.user.IsNull();
                //objPCMImput.zipCode = informacionClienteNaturalInput.zipCode.IsNull();

                #endregion

                #region Objetos de Prueba
                //NewTobjPCMResultado.correg = "1001";
                //NewTobjPCMResultado.country = "PA";
                //NewTobjPCMResultado.distrit = "101";
                //NewTobjPCMResultado.idCountry = "PA";
                //NewTobjPCMResultado.idCountry4 = "PA";
                //NewTobjPCMResultado.nationality = "PA";
                //NewTobjPCMResultado.province = "01";
                //NewTobjPCMResultado.residencyCountry = "PA";
                //NewTobjPCMResultado.secondIdNumber = "";

                //NewTobjPCMResultado.mainOfficer = "0001";
                //NewTobjPCMResultado.idType = "PH";
                #endregion

                informacionClienteNaturalInput.ParseMessageTo(objPCMImput);
                var result = objCustomerServices.personalCustomerMaintenance(objPCMImput);
                result.ParseMessageTo(informacionClientNaturalOutput);
            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        [WebMethod(Description = "Actualiza la información del una cliente juridico", MessageName = "ActualizaClienteJuridico")]
        public Mensaje ActualizarClienteJuridicoIBS(IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoInput, ref IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoOutput)
        //public Mensaje ActualizarClienteJuridicoIBS()
        {

            Mensaje retMensaje = new Mensaje();

            WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage objCCMImput = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            #region TEST Creacion de Mensaje

            //IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoInput = new IntegracionInformacionCustomerServicesCJuridico();
            //IntegracionInformacionCustomerServicesCJuridico informacionClientJuridicoOutput = new IntegracionInformacionCustomerServicesCJuridico();

            //WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage TobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
            //WSIntegracionCoreBancario.CustomerService.CustomerService TobjCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            //WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage TobjCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            //WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage NewTobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();

            //IntegracionInformacionCustomerServicesCJuridico TInformacionClienteJuridico = new IntegracionInformacionCustomerServicesCJuridico();
            //TobjCIM.idCountry = "PA";
            //TobjCIM.idNumber = "0025717-0180-00220056";
            //TobjCIM.idType = "RUC";
            //TobjCIM.user = "user";
            //TobjPCMResultado = objCustomerServices.corporateCustomerInquiry(TobjCIM);

            //TobjPCMResultado.ParseMessageTo(TInformacionClienteJuridico);

            //TInformacionClienteJuridico.firstContact = "2010/01/01";
            //TInformacionClienteJuridico.foundation = "2009/01/01";
            //TInformacionClienteJuridico.inscription = "2009/02/01";

            //TInformacionClienteJuridico.ParseMessageTo(NewTobjPCMResultado);
            //NewTobjPCMResultado.firstContact = TInformacionClienteJuridico.firstContact.ToDateData();
            //NewTobjPCMResultado.foundation = TInformacionClienteJuridico.foundation.ToDateData();
            //NewTobjPCMResultado.inscription = TInformacionClienteJuridico.inscription.ToDateData();


            #endregion

            try
            {
                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //objCCMImput.addressLine1 = informacionClienteJuridicoInput.addressLine1.IsNull();
                //objCCMImput.addressLine2 = informacionClienteJuridicoInput.addressLine2.IsNull();
                //objCCMImput.addressLine3 = informacionClienteJuridicoInput.addressLine3.IsNull();
                //objCCMImput.addressVerbalRef = informacionClienteJuridicoInput.addressVerbalRef.IsNull();
                //objCCMImput.appPending = informacionClienteJuridicoInput.appPending.IsNull();
                //objCCMImput.aptoOffice = informacionClienteJuridicoInput.aptoOffice.IsNull();
                //objCCMImput.automaticAppFlag = informacionClienteJuridicoInput.automaticAppFlag.IsNull();
                //objCCMImput.bankingType = informacionClienteJuridicoInput.bankingType.IsNull();
                //objCCMImput.building = informacionClienteJuridicoInput.building.IsNull();
                //objCCMImput.businessArea = informacionClienteJuridicoInput.businessArea.IsNull();
                //objCCMImput.businessCode = informacionClienteJuridicoInput.businessCode.IsNull();
                //objCCMImput.businessCodeDesc = informacionClienteJuridicoInput.businessCodeDesc.IsNull();
                //objCCMImput.businessTypeDesc = informacionClienteJuridicoInput.businessTypeDesc.IsNull();
                //objCCMImput.businessUnity = informacionClienteJuridicoInput.businessUnity.IsNull();
                //objCCMImput.capitalPaid = informacionClienteJuridicoInput.capitalPaid.ToDecimal();
                //objCCMImput.celularPhoneNumber = informacionClienteJuridicoInput.celularPhoneNumber.ToUlong();
                //objCCMImput.city = informacionClienteJuridicoInput.city.IsNull();
                //objCCMImput.classification = informacionClienteJuridicoInput.classification.IsNull();
                //objCCMImput.classificationDesc = informacionClienteJuridicoInput.classificationDesc.IsNull();
                //objCCMImput.classificationForm = informacionClienteJuridicoInput.classificationForm.IsNull();
                //objCCMImput.clientClass = informacionClienteJuridicoInput.clientClass.IsNull();
                //objCCMImput.clientOperativeType = informacionClienteJuridicoInput.clientOperativeType.IsNull();
                //objCCMImput.clientStatus = informacionClienteJuridicoInput.clientStatus.IsNull();
                //objCCMImput.companySize = informacionClienteJuridicoInput.companySize.IsNull();
                //objCCMImput.condominium = informacionClienteJuridicoInput.condominium.IsNull();
                //objCCMImput.correg = informacionClienteJuridicoInput.correg.IsNull();
                //objCCMImput.corregDesc = informacionClienteJuridicoInput.corregDesc.IsNull();
                //objCCMImput.country = informacionClienteJuridicoInput.country.IsNull();
                //objCCMImput.countryOfBirthDesc = informacionClienteJuridicoInput.countryOfBirthDesc.IsNull();
                //objCCMImput.customerNumber = informacionClienteJuridicoInput.customerNumber.ToUlong();
                //objCCMImput.customerType = informacionClienteJuridicoInput.customerType.IsNull();
                //objCCMImput.debitCardNumber = informacionClienteJuridicoInput.debitCardNumber.ToInteger();
                //objCCMImput.discountCompanyDesc = informacionClienteJuridicoInput.discountCompanyDesc.IsNull();
                //objCCMImput.distrit = informacionClienteJuridicoInput.distrit.IsNull();
                //objCCMImput.distritDesc = informacionClienteJuridicoInput.distritDesc.IsNull();
                //objCCMImput.educationLevelDesc = informacionClienteJuridicoInput.educationLevelDesc.IsNull();
                //objCCMImput.email = informacionClienteJuridicoInput.email.IsNull();
                //objCCMImput.faxNumber = informacionClienteJuridicoInput.faxNumber.ToUlong();
                //objCCMImput.firstContact = informacionClienteJuridicoInput.firstContact.ToDateData();
                //objCCMImput.floorLevel = informacionClienteJuridicoInput.floorLevel.IsNull();
                //objCCMImput.folioNumber = informacionClienteJuridicoInput.folioNumber.IsNull();
                //objCCMImput.foundation = informacionClienteJuridicoInput.foundation.ToDateData();
                //objCCMImput.fourthIdCountry = informacionClienteJuridicoInput.fourthIdCountry.IsNull();
                //objCCMImput.fourthIdCountryDesc = informacionClienteJuridicoInput.fourthIdCountryDesc.IsNull();
                //objCCMImput.fourthIdNumber = informacionClienteJuridicoInput.fourthIdNumber.IsNull();
                //objCCMImput.fourthIdType = informacionClienteJuridicoInput.fourthIdType.IsNull();
                //objCCMImput.fourthIdTypeDesc = informacionClienteJuridicoInput.fourthIdTypeDesc.IsNull();
                //objCCMImput.groupNumber = informacionClienteJuridicoInput.groupNumber.IsNull();
                //objCCMImput.idCountry = informacionClienteJuridicoInput.idCountry.IsNull();
                //objCCMImput.idCountryDesc = informacionClienteJuridicoInput.idCountryDesc.IsNull();
                //objCCMImput.idNumber = informacionClienteJuridicoInput.idNumber.IsNull();
                //objCCMImput.idType = informacionClienteJuridicoInput.idType.IsNull();
                //objCCMImput.idTypeDesc = informacionClienteJuridicoInput.idTypeDesc.IsNull();
                //objCCMImput.incomeSource = informacionClienteJuridicoInput.incomeSource.IsNull();
                //objCCMImput.incomeSourceDesc = informacionClienteJuridicoInput.incomeSourceDesc.IsNull();
                //objCCMImput.industryCode = informacionClienteJuridicoInput.industryCode.IsNull();
                //objCCMImput.industryCodeDesc = informacionClienteJuridicoInput.industryCodeDesc.IsNull();
                //objCCMImput.initialCapital = informacionClienteJuridicoInput.initialCapital.ToDecimal();
                //objCCMImput.inquiryLevel = informacionClienteJuridicoInput.inquiryLevel.ToUlong();
                //objCCMImput.inscription = informacionClienteJuridicoInput.inscription.ToDateData();
                //objCCMImput.inscriptionNumber = informacionClienteJuridicoInput.inscriptionNumber;
                //objCCMImput.juridicalDistrict = informacionClienteJuridicoInput.juridicalDistrict.IsNull();
                //objCCMImput.languageIndicator = informacionClienteJuridicoInput.languageIndicator.IsNull();
                //objCCMImput.legalName = informacionClienteJuridicoInput.legalName.IsNull();
                //objCCMImput.mailingCode = informacionClienteJuridicoInput.mailingCode.IsNull();
                //objCCMImput.mailingCodeDesc = informacionClienteJuridicoInput.mailingCodeDesc.IsNull();
                //objCCMImput.mainOfficer = informacionClienteJuridicoInput.mainOfficer.IsNull();
                //objCCMImput.mainOfficerDesc = informacionClienteJuridicoInput.mainOfficerDesc.IsNull();
                //objCCMImput.moreRecords = informacionClienteJuridicoInput.moreRecords.IsNull();
                //objCCMImput.municipality = informacionClienteJuridicoInput.municipality.IsNull();
                //objCCMImput.municipalityDesc = informacionClienteJuridicoInput.municipalityDesc.IsNull();
                //objCCMImput.nacionalityDesc = informacionClienteJuridicoInput.nacionalityDesc.IsNull();
                //objCCMImput.nationality = informacionClienteJuridicoInput.nationality.IsNull();
                //objCCMImput.numberOfShears = informacionClienteJuridicoInput.numberOfShears.ToUlong();
                //objCCMImput.officePhoneNumber1 = informacionClienteJuridicoInput.officePhoneNumber1.ToUlong();
                //objCCMImput.officePhoneNumber2 = informacionClienteJuridicoInput.officePhoneNumber2.ToUlong();
                //objCCMImput.originCountry = informacionClienteJuridicoInput.originCountry.IsNull();
                //objCCMImput.ownershipType = informacionClienteJuridicoInput.ownershipType.IsNull();
                //objCCMImput.parish = informacionClienteJuridicoInput.parish.IsNull();
                //objCCMImput.parishDesc = informacionClienteJuridicoInput.parishDesc.IsNull();
                //objCCMImput.poBox = informacionClienteJuridicoInput.poBox.IsNull();
                //objCCMImput.portfolioType = informacionClienteJuridicoInput.portfolioType.IsNull();
                //objCCMImput.positionDesc = informacionClienteJuridicoInput.positionDesc.IsNull();
                //objCCMImput.previousName = informacionClienteJuridicoInput.previousName.IsNull();
                //objCCMImput.previsionTable = informacionClienteJuridicoInput.previsionTable.IsNull();
                //objCCMImput.propertyType = informacionClienteJuridicoInput.propertyType.IsNull();
                //objCCMImput.provinceDesc = objCCMImput.provinceDesc.IsNull();
                //objCCMImput.referBy = informacionClienteJuridicoInput.referBy.IsNull();
                //objCCMImput.referByDesc = informacionClienteJuridicoInput.referByDesc.IsNull();
                //objCCMImput.referByName = informacionClienteJuridicoInput.referByName.IsNull();
                //objCCMImput.reference = informacionClienteJuridicoInput.reference.IsNull();
                //objCCMImput.region = informacionClienteJuridicoInput.region.IsNull();
                //objCCMImput.registerNumber = informacionClienteJuridicoInput.registerNumber.IsNull();
                //objCCMImput.relation = informacionClienteJuridicoInput.relation.IsNull();
                //objCCMImput.relationDesc = informacionClienteJuridicoInput.relationDesc.IsNull();
                //objCCMImput.residencyCountry = informacionClienteJuridicoInput.residencyCountry.IsNull();
                //objCCMImput.residencyCountryDesc = informacionClienteJuridicoInput.residencyCountryDesc.IsNull();
                //objCCMImput.residentFlag = informacionClienteJuridicoInput.residentFlag.IsNull();
                //objCCMImput.riskCentral = informacionClienteJuridicoInput.riskCentral.IsNull();
                //objCCMImput.riskLevel = informacionClienteJuridicoInput.riskLevel.IsNull();
                //objCCMImput.riskLevelDesc = informacionClienteJuridicoInput.riskLevelDesc.IsNull();
                //objCCMImput.rollOverVolume = informacionClienteJuridicoInput.rollOverVolume.IsNull();
                //objCCMImput.salesLevel = informacionClienteJuridicoInput.salesLevel.IsNull();
                //objCCMImput.secondIdCountry = informacionClienteJuridicoInput.secondIdCountry.IsNull();
                //objCCMImput.secondIdCountryDesc = informacionClienteJuridicoInput.secondIdCountryDesc.IsNull();
                //objCCMImput.secondIdNumber = informacionClienteJuridicoInput.secondIdNumber.IsNull();
                //objCCMImput.secondIdType = informacionClienteJuridicoInput.secondIdType.IsNull();
                //objCCMImput.secondIdTypeDesc = informacionClienteJuridicoInput.secondIdTypeDesc.IsNull();
                //objCCMImput.secondOfficer = informacionClienteJuridicoInput.secondOfficer.IsNull();
                //objCCMImput.secondOfficerDesc = informacionClienteJuridicoInput.secondOfficerDesc.IsNull();
                //objCCMImput.shortName = informacionClienteJuridicoInput.shortName.IsNull();
                //objCCMImput.socioEconomicLevel = informacionClienteJuridicoInput.socioEconomicLevel.IsNull();
                //objCCMImput.specialInstructions = informacionClienteJuridicoInput.specialInstructions.ToStringValue();
                //objCCMImput.state = informacionClienteJuridicoInput.state.IsNull();
                //objCCMImput.stockHolders = informacionClienteJuridicoInput.stockHolders.ToUlong();
                //objCCMImput.street = informacionClienteJuridicoInput.street.IsNull();
                //objCCMImput.subscribedCapital = informacionClienteJuridicoInput.subscribedCapital.ToDecimal();
                //objCCMImput.taxes = informacionClienteJuridicoInput.taxes.IsNull();
                //objCCMImput.thirdIdCountry = informacionClienteJuridicoInput.thirdIdCountry.IsNull();
                //objCCMImput.thirdIdCountryDesc = informacionClienteJuridicoInput.thirdIdCountryDesc.IsNull();
                //objCCMImput.thirdIdNumber = informacionClienteJuridicoInput.thirdIdNumber.IsNull();
                //objCCMImput.thirdIdType = informacionClienteJuridicoInput.thirdIdType.IsNull();
                //objCCMImput.thirdIdTypeDesc = informacionClienteJuridicoInput.thirdIdTypeDesc.IsNull();
                //objCCMImput.typeOfCorresBank = informacionClienteJuridicoInput.typeOfCorresBank.IsNull();
                //objCCMImput.user = informacionClienteJuridicoInput.user.IsNull();
                //objCCMImput.userCode6Desc = informacionClienteJuridicoInput.userCode6Desc.IsNull();
                //objCCMImput.userCode9Desc = informacionClienteJuridicoInput.userCode9Desc.IsNull();
                //objCCMImput.volumeNumber = informacionClienteJuridicoInput.volumeNumber.IsNull();
                //objCCMImput.yearsBusiness = informacionClienteJuridicoInput.yearsBusiness.ToInteger();
                //objCCMImput.zipCode = informacionClienteJuridicoInput.zipCode.IsNull();
                #endregion
                #region Objeto de Prueba
                //TobjPCMResultado.addressLine1 = "TEST LINE ADR 1 Information";
                //TobjPCMResultado.addressLine2 = "TEST LINE ADR 2 Information";
                //TobjPCMResultado.clientClass = "1";
                //TobjPCMResultado.clientStatus = "1";
                //TobjPCMResultado.correg = "1001";
                //TobjPCMResultado.country = "PA";
                //TobjPCMResultado.debitCardNumber = 1111;
                //TobjPCMResultado.idCountry = "PA";

                //TobjPCMResultado.idType = "PH";
                //TobjPCMResultado.distrit = "101";
                //TobjPCMResultado.legalName = "LOGICSTUDIO S.A";
                //TobjPCMResultado.mainOfficer = "0001";
                //TobjPCMResultado.nationality = "PA";

                //TobjPCMResultado.originCountry = "PA";
                //TobjPCMResultado.ownershipType = "1";
                //TobjPCMResultado.residencyCountry = "PA";
                //TobjPCMResultado.taxes = "1";

                #endregion

                informacionClienteJuridicoInput.ParseMessageTo(objCCMImput);
                var result = objCustomerServices.corporateCustomerMaintenance(objCCMImput);
                result.ParseMessageTo(informacionClienteJuridicoOutput);
            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        [WebMethod(Description = "Agrega un nuevo cliente natural", MessageName = "AgregarNuevoClienteNatural")]
        //public Mensaje NuevoClienteNaturalIBS()
        public Mensaje NuevoClienteNaturalIBS(IntegracionInformacionCustomerServicesCNatural informacionClienteNaturalInput, ref IntegracionInformacionCustomerServicesCNatural informacionClientNaturalOutput)
        {

            WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage objPCMImput = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            #region TEST Creacion de Mensaje

            //IntegracionInformacionCustomerServicesCNatural informacionClienteNaturalInput = new IntegracionInformacionCustomerServicesCNatural();
            //IntegracionInformacionCustomerServicesCNatural informacionClientNaturalOutput = new IntegracionInformacionCustomerServicesCNatural();

            //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage TobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();
            //WSIntegracionCoreBancario.CustomerService.CustomerService TobjCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            //WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage TobjCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            //WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage NewTobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.PersonalCustomerMessage();

            //IntegracionInformacionCustomerServicesCNatural TInformacionClienteNatural = new IntegracionInformacionCustomerServicesCNatural();
            //TobjCIM.idCountry = "PA";
            //TobjCIM.idNumber = "03--00104-000609";
            //TobjCIM.idType = "CIP";
            //TobjCIM.user = "user";
            //TobjPCMResultado = objCustomerServices.personalCustomerInquiry(TobjCIM);

            //TobjPCMResultado.ParseMessageTo(TInformacionClienteNatural);
            //TInformacionClienteNatural.ParseMessageTo(NewTobjPCMResultado);


            #endregion

            Mensaje retMensaje = new Mensaje();
            try
            {

                #region Objetos de Prueba
                //NewTobjPCMResultado.correg = "1001";
                //NewTobjPCMResultado.country = "PA";
                //NewTobjPCMResultado.distrit = "101";
                //NewTobjPCMResultado.idCountry = "PA";
                //NewTobjPCMResultado.idCountry4 = "PA";
                //NewTobjPCMResultado.nationality = "PA";
                //NewTobjPCMResultado.province = "01";
                //NewTobjPCMResultado.residencyCountry = "PA";
                //NewTobjPCMResultado.secondIdNumber = "";
                //NewTobjPCMResultado.idNumber = "01--00799-000122";
                //NewTobjPCMResultado.email = "alex.sanchez@logicstuido.net";
                //NewTobjPCMResultado.fuente = "AFIN";
                //NewTobjPCMResultado.firstLastName = "Sanchez";
                //NewTobjPCMResultado.firstName = "Alex";
                //NewTobjPCMResultado.customerNumber = 0;
                //NewTobjPCMResultado.clientClass = "N";
                //NewTobjPCMResultado.clientStatus = "1";
                //NewTobjPCMResultado.clientType = "R";
                //NewTobjPCMResultado.companyAddress = "Costa Sur";
                //NewTobjPCMResultado.mainOfficer = "0001";
                //NewTobjPCMResultado.idType = "PH";
                #endregion

                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //objPCMImput.addressLine = informacionClienteNaturalInput.addressLine.IsNull();
                //objPCMImput.birthDate = informacionClienteNaturalInput.birthDate.ToInteger();
                //objPCMImput.birthDateDay = informacionClienteNaturalInput.birthDateDay.ToInteger();
                //objPCMImput.birthDateMonth = informacionClienteNaturalInput.birthDateMonth.ToInteger();
                //objPCMImput.birthDateYear = informacionClienteNaturalInput.birthDateYear.ToInteger();
                //objPCMImput.branch = informacionClienteNaturalInput.branch.IsNull();
                //objPCMImput.businessCode = informacionClienteNaturalInput.businessCode.IsNull();
                //objPCMImput.businessCodeDesc = informacionClienteNaturalInput.businessCodeDesc.IsNull();
                //objPCMImput.businessType = informacionClienteNaturalInput.businessType.IsNull();
                //objPCMImput.businessTypeDesc = informacionClienteNaturalInput.businessTypeDesc.IsNull();
                //objPCMImput.celularPhoneNum = informacionClienteNaturalInput.celularPhoneNum.ToLong();
                //objPCMImput.channelType = informacionClienteNaturalInput.channelType.IsNull();
                //objPCMImput.channelTypeDesc = informacionClienteNaturalInput.channelTypeDesc.IsNull();
                //objPCMImput.city = informacionClienteNaturalInput.city.IsNull();
                //objPCMImput.classification = informacionClienteNaturalInput.classification.IsNull();


                //objPCMImput.classificationDesc = informacionClienteNaturalInput.classificationDesc.IsNull().IsNull();
                //objPCMImput.classificationForm = informacionClienteNaturalInput.classificationForm.IsNull();
                //objPCMImput.clientClass = informacionClienteNaturalInput.clientClass.IsNull();
                //objPCMImput.clientStatus = informacionClienteNaturalInput.clientStatus.IsNull();
                //objPCMImput.clientType = informacionClienteNaturalInput.clientType.IsNull();
                //objPCMImput.companyAddress = informacionClienteNaturalInput.companyAddress.IsNull();
                //objPCMImput.companyCharges = informacionClienteNaturalInput.companyCharges.IsNull();
                //objPCMImput.companyInfo = informacionClienteNaturalInput.companyInfo.IsNull();
                //objPCMImput.companyName = informacionClienteNaturalInput.companyName.IsNull();
                //objPCMImput.companyRuc = informacionClienteNaturalInput.companyRuc.IsNull();
                //objPCMImput.companyType = informacionClienteNaturalInput.companyType.IsNull();
                //objPCMImput.contractType = informacionClienteNaturalInput.contractType.IsNull();

                //objPCMImput.correg = informacionClienteNaturalInput.correg.ToString().IsNull();
                //objPCMImput.corregDesc = informacionClienteNaturalInput.corregDesc.IsNull();

                //objPCMImput.country = informacionClienteNaturalInput.country.IsNull();
                //objPCMImput.countryDesc = informacionClienteNaturalInput.countryDesc.IsNull();
                //objPCMImput.countryOfBirth = informacionClienteNaturalInput.countryOfBirth.IsNull(); ;
                //objPCMImput.countryOfBirthDesc = informacionClienteNaturalInput.countryOfBirthDesc.IsNull(); ;
                //objPCMImput.currentIncome = informacionClienteNaturalInput.currentIncome.ToFLoat();
                //objPCMImput.currentJEntryDate = informacionClienteNaturalInput.currentJEntryDate.ToInteger();
                //objPCMImput.currentJEntryDay = informacionClienteNaturalInput.currentJEntryDay.ToInteger();
                //objPCMImput.currentJEntryMonth = informacionClienteNaturalInput.currentJEntryMonth.ToInteger();
                //objPCMImput.currentJEntryYear = informacionClienteNaturalInput.currentJEntryYear.ToInteger();
                //objPCMImput.customerNumber = "0".ToInteger();
                //objPCMImput.customerType = informacionClienteNaturalInput.customerType.IsNull();
                //objPCMImput.customerTypeSel = informacionClienteNaturalInput.customerTypeSel.IsNull();
                //objPCMImput.debitCard = informacionClienteNaturalInput.debitCard.IsNull();
                //objPCMImput.dependents = informacionClienteNaturalInput.dependents.ToInteger();
                //objPCMImput.discountCompanyCode = informacionClienteNaturalInput.discountCompanyCode.IsNull();
                //objPCMImput.discountCompanyDsc = informacionClienteNaturalInput.discountCompanyDsc.IsNull();

                //objPCMImput.distrit = informacionClienteNaturalInput.country.IsNull();
                //objPCMImput.distritDesc = informacionClienteNaturalInput.distritDesc.IsNull();
                //objPCMImput.educationalExpenses = informacionClienteNaturalInput.educationalExpenses.IsNull();
                //objPCMImput.educationLevel = informacionClienteNaturalInput.educationLevel.IsNull();
                //objPCMImput.educationLevelDesc = informacionClienteNaturalInput.educationLevelDesc.IsNull();
                //objPCMImput.email = informacionClienteNaturalInput.email.IsNull();
                //objPCMImput.employeeNumber = informacionClienteNaturalInput.employeeNumber.IsNull();
                //objPCMImput.employmentTime = informacionClienteNaturalInput.employmentTime.IsNull();
                //objPCMImput.familiarRelationType = informacionClienteNaturalInput.familiarRelationType.IsNull();
                //objPCMImput.faxNumber = informacionClienteNaturalInput.faxNumber.ToLong();
                //objPCMImput.firstContactDateDay = informacionClienteNaturalInput.firstContactDateDay.ToInteger();
                //objPCMImput.firstContactDateMont = informacionClienteNaturalInput.firstContactDateMont.ToInteger();
                //objPCMImput.firstContactDateYear = informacionClienteNaturalInput.firstContactDateYear.ToInteger();
                //objPCMImput.firstLastName = informacionClienteNaturalInput.firstLastName.IsNull();
                //objPCMImput.firstName = informacionClienteNaturalInput.firstName.IsNull();
                //objPCMImput.floorLevel = informacionClienteNaturalInput.floorLevel.IsNull();
                //objPCMImput.fuente = informacionClienteNaturalInput.fuente.IsNull();
                //objPCMImput.groupNumber = informacionClienteNaturalInput.groupNumber.ToInteger();
                //objPCMImput.houseNumber = informacionClienteNaturalInput.houseNumber.IsNull();
                //objPCMImput.housePhoneNum = informacionClienteNaturalInput.housePhoneNum.ToLong();
                //objPCMImput.idContraloria = informacionClienteNaturalInput.idContraloria.IsNull();
                //objPCMImput.idCountry = informacionClienteNaturalInput.idCountry.IsNull();
                //objPCMImput.idCountry4 = informacionClienteNaturalInput.idContraloria.IsNull();
                //objPCMImput.idCountryDesc4 = informacionClienteNaturalInput.idCountryDesc4.IsNull();
                //objPCMImput.idNumber = informacionClienteNaturalInput.idNumber.IsNull();
                //objPCMImput.idNumber4 = informacionClienteNaturalInput.idNumber4.IsNull();
                //objPCMImput.idType4 = informacionClienteNaturalInput.idType4.IsNull();
                //objPCMImput.idType = informacionClienteNaturalInput.idType.IsNull();
                //objPCMImput.idTypeDesc = informacionClienteNaturalInput.idTypeDesc.IsNull();
                //objPCMImput.idTypeDesc4 = informacionClienteNaturalInput.idTypeDesc4.IsNull();
                //objPCMImput.incomeLevel = informacionClienteNaturalInput.incomeLevel.IsNull();
                //objPCMImput.incomeSource = informacionClienteNaturalInput.incomeSource.IsNull();
                //objPCMImput.incomeSourceDesc = informacionClienteNaturalInput.incomeSourceDesc.IsNull();
                //objPCMImput.incomeType = informacionClienteNaturalInput.incomeType.IsNull();
                //objPCMImput.indicador = informacionClienteNaturalInput.indicador.IsNull();
                //objPCMImput.industryCode = informacionClienteNaturalInput.industryCode.IsNull();
                //objPCMImput.industryCodeDesc = informacionClienteNaturalInput.industryCodeDesc.IsNull();
                //objPCMImput.initialCapital = informacionClienteNaturalInput.initialCapital.IsNull();
                //objPCMImput.inquiryLevel = informacionClienteNaturalInput.inquiryLevel.IsNull();
                //objPCMImput.language = informacionClienteNaturalInput.language.IsNull();
                //objPCMImput.legalName = informacionClienteNaturalInput.legalName.IsNull();
                //objPCMImput.legalStatus = informacionClienteNaturalInput.legalStatus.IsNull();
                //objPCMImput.longIdNumber = informacionClienteNaturalInput.longIdNumber.IsNull();
                //objPCMImput.longIdTypeDesc = informacionClienteNaturalInput.longIdTypeDesc.IsNull();
                //objPCMImput.mailingCode = informacionClienteNaturalInput.mailingCode.IsNull();
                //objPCMImput.mailingCodeDesc = informacionClienteNaturalInput.mailingCodeDesc.IsNull();
                //objPCMImput.mainOfficer = informacionClienteNaturalInput.mainOfficer.IsNull();
                //objPCMImput.mainOfficerDesc = informacionClienteNaturalInput.mainOfficerDesc.IsNull();
                //objPCMImput.marriedName = informacionClienteNaturalInput.marriedName.IsNull();
                //objPCMImput.municipality = informacionClienteNaturalInput.municipality.IsNull();
                //objPCMImput.municipalityDesc = informacionClienteNaturalInput.municipalityDesc.IsNull();
                //objPCMImput.nacionalityDesc = informacionClienteNaturalInput.nacionalityDesc.IsNull();
                //objPCMImput.nationality = informacionClienteNaturalInput.nationality.IsNull();
                //objPCMImput.netPatrimony = informacionClienteNaturalInput.netPatrimony.IsNull();
                //objPCMImput.officeNumber = informacionClienteNaturalInput.officeNumber.IsNull();
                //objPCMImput.officePhoneNum = informacionClienteNaturalInput.officePhoneNum.ToLong();
                //objPCMImput.otherExpenses = informacionClienteNaturalInput.otherExpenses.IsNull();
                //objPCMImput.otherIncome = informacionClienteNaturalInput.otherIncome.IsNull();
                //objPCMImput.otherIncomeSource = informacionClienteNaturalInput.otherIncomeSource.IsNull();
                //objPCMImput.parish = informacionClienteNaturalInput.parish.IsNull();
                //objPCMImput.parishDesc = informacionClienteNaturalInput.parishDesc.IsNull();
                //objPCMImput.payDay = informacionClienteNaturalInput.payDay.IsNull();
                //objPCMImput.poBox = informacionClienteNaturalInput.poBox.IsNull();
                //objPCMImput.position = informacionClienteNaturalInput.position.IsNull();
                //objPCMImput.positionDesc = informacionClienteNaturalInput.positionDesc.IsNull();
                //objPCMImput.previousJEndDay = informacionClienteNaturalInput.previousJEndDay.ToInteger();
                //objPCMImput.previousJEndMonth = informacionClienteNaturalInput.previousJEndMonth.ToInteger();
                //objPCMImput.previousJEndYear = informacionClienteNaturalInput.previousJEndYear.ToInteger();
                //objPCMImput.previousJEntryDay = informacionClienteNaturalInput.previousJEntryDay.ToInteger();
                //objPCMImput.previousJEntryMonth = informacionClienteNaturalInput.previousJEntryMonth.ToInteger();
                //objPCMImput.previousJEntryYear = informacionClienteNaturalInput.previousJEntryYear.ToInteger();
                //objPCMImput.previsionTable = informacionClienteNaturalInput.previsionTable.IsNull();
                //objPCMImput.profession = informacionClienteNaturalInput.profession.IsNull();
                //objPCMImput.professionDesc = informacionClienteNaturalInput.professionDesc.IsNull();
                //objPCMImput.propertyType = informacionClienteNaturalInput.propertyType.IsNull();

                //objPCMImput.province = informacionClienteNaturalInput.province.IsNull();
                //objPCMImput.provinceDesc = informacionClienteNaturalInput.provinceDesc.IsNull();
                //objPCMImput.referBy = informacionClienteNaturalInput.referBy.IsNull();
                //objPCMImput.referByDesc = informacionClienteNaturalInput.referByDesc.IsNull();
                //objPCMImput.referByName = informacionClienteNaturalInput.referByName.IsNull();
                //objPCMImput.relation = informacionClienteNaturalInput.relation.IsNull();
                //objPCMImput.relationDesc = informacionClienteNaturalInput.relationDesc.IsNull();
                //objPCMImput.relationType = informacionClienteNaturalInput.relationType.IsNull();
                //objPCMImput.rentAmount = informacionClienteNaturalInput.rentAmount.IsNull();
                //objPCMImput.rentType = informacionClienteNaturalInput.rentType.IsNull();
                //objPCMImput.residencyCountry = informacionClienteNaturalInput.residencyCountry.IsNull();
                //objPCMImput.residencyCountryDesc = informacionClienteNaturalInput.residencyCountryDesc.IsNull();
                //objPCMImput.resident = informacionClienteNaturalInput.resident.IsNull();
                //objPCMImput.riskLevel = informacionClienteNaturalInput.riskLevel.IsNull();
                //objPCMImput.riskLevelDesc = informacionClienteNaturalInput.riskLevelDesc.IsNull();
                //objPCMImput.salesChannel = informacionClienteNaturalInput.salesChannel.IsNull();
                //objPCMImput.salesChannelDesc = informacionClienteNaturalInput.salesChannelDesc.IsNull();
                //objPCMImput.secondIdCountry = informacionClienteNaturalInput.secondIdCountry.IsNull();
                //objPCMImput.secondIdCountryDesc = informacionClienteNaturalInput.secondIdCountryDesc.IsNull();
                //objPCMImput.secondIdNumber = informacionClienteNaturalInput.secondIdNumber.IsNull();
                //objPCMImput.secondIdType = informacionClienteNaturalInput.secondIdType.IsNull();
                //objPCMImput.secondIdTypeDesc = informacionClienteNaturalInput.secondIdTypeDesc.IsNull();
                //objPCMImput.secondLastName = informacionClienteNaturalInput.secondLastName.IsNull();
                //objPCMImput.secondName = informacionClienteNaturalInput.secondName.IsNull();
                //objPCMImput.secondOfficer = informacionClienteNaturalInput.secondOfficer.IsNull();
                //objPCMImput.secondOfficerDesc = informacionClienteNaturalInput.secondOfficerDesc.IsNull();
                //objPCMImput.sex = informacionClienteNaturalInput.sex.IsNull();
                //objPCMImput.shortIdCountry = informacionClienteNaturalInput.shortIdCountry.IsNull();
                //objPCMImput.shortIdNumber = informacionClienteNaturalInput.shortIdNumber.IsNull();
                //objPCMImput.shortIdType = informacionClienteNaturalInput.shortIdType.IsNull();
                //objPCMImput.shortName = informacionClienteNaturalInput.shortName.IsNull();
                //objPCMImput.socialSecurityNumber = informacionClienteNaturalInput.socialSecurityNumber.IsNull();
                //objPCMImput.specialInstructions = informacionClienteNaturalInput.specialInstructions;
                //objPCMImput.street = informacionClienteNaturalInput.street.IsNull();
                //objPCMImput.taxes = informacionClienteNaturalInput.taxes.IsNull();
                //objPCMImput.thirdIdCountry = informacionClienteNaturalInput.thirdIdCountry.IsNull();
                //objPCMImput.thirdIdCountryDesc = informacionClienteNaturalInput.thirdIdCountryDesc.IsNull();
                //objPCMImput.thirdIdNumber = informacionClienteNaturalInput.thirdIdNumber.IsNull();
                //objPCMImput.thirdIdType = informacionClienteNaturalInput.thirdIdType.IsNull();
                //objPCMImput.thirdIdTypeDesc = informacionClienteNaturalInput.thirdIdTypeDesc.IsNull();
                //objPCMImput.user = informacionClienteNaturalInput.user.IsNull();
                //objPCMImput.zipCode = informacionClienteNaturalInput.zipCode.IsNull();

                #endregion

                informacionClienteNaturalInput.ParseMessageTo(objPCMImput);
                var result = objCustomerServices.newPersonalCustomer(objPCMImput);
                result.ParseMessageTo(informacionClientNaturalOutput);

            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        [WebMethod(Description = "Agrega un nuevo cliente juridico", MessageName = "AgregarNuevoClienteJuridico")]
        //public Mensaje NuevoClienteJuridicoIBS()
        public Mensaje NuevoClienteJuridicoIBS(IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoInput, ref IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoOutput)
        {

            Mensaje retMensaje = new Mensaje();

            WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage objCCMImput = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
            WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage objCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            #region TEST Creacion de Mensaje

            //IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoInput = new IntegracionInformacionCustomerServicesCJuridico();
            //IntegracionInformacionCustomerServicesCJuridico informacionClienteJuridicoOutput = new IntegracionInformacionCustomerServicesCJuridico();

            //WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage TobjCCMResultado = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();
            //WSIntegracionCoreBancario.CustomerService.CustomerService TobjCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
            //WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage TobjCIM = new WSIntegracionCoreBancario.CustomerService.CustomerInquiryMessage();

            //WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage NewTobjPCMResultado = new WSIntegracionCoreBancario.CustomerService.CorporateCustomerMessage();

            //IntegracionInformacionCustomerServicesCJuridico TInformacionClienteCorporate = new IntegracionInformacionCustomerServicesCJuridico();
            //TobjCIM.idCountry = "PA";
            //TobjCIM.idNumber = "0025717-0180-00220056";
            //TobjCIM.idType = "RUC";
            //TobjCIM.user = "user";
            //TobjCCMResultado = objCustomerServices.corporateCustomerInquiry(TobjCIM);

            //TobjCCMResultado.ParseMessageTo(TInformacionClienteCorporate);

            //TInformacionClienteCorporate.firstContact = "2010/01/01";
            //TInformacionClienteCorporate.foundation = "2009/01/01";
            //TInformacionClienteCorporate.inscription = "2009/02/01";

            //TInformacionClienteCorporate.ParseMessageTo(NewTobjPCMResultado);
            //NewTobjPCMResultado.firstContact = TInformacionClienteCorporate.firstContact.ToDateData();
            //NewTobjPCMResultado.foundation = TInformacionClienteCorporate.foundation.ToDateData();
            //NewTobjPCMResultado.inscription = TInformacionClienteCorporate.inscription.ToDateData();

            #endregion

            try
            {
                #region Objetos de Prueba
                //NewTobjPCMResultado.correg = "1001";
                //NewTobjPCMResultado.country = "PA";
                //NewTobjPCMResultado.distrit = "101";
                //NewTobjPCMResultado.idCountry = "PA";

                //NewTobjPCMResultado.clientClass = "1";
                //NewTobjPCMResultado.clientOperativeType = "R";
                //NewTobjPCMResultado.clientStatus = "1";

                //NewTobjPCMResultado.nationality = "PA";
                //NewTobjPCMResultado.businessCode = "OCMR";
                //NewTobjPCMResultado.residencyCountry = "PA";
                //NewTobjPCMResultado.secondIdNumber = "";
                //NewTobjPCMResultado.idNumber = "01--00799-000122";
                //NewTobjPCMResultado.email = "fastnet@banesco.net";

                //NewTobjPCMResultado.customerNumber = 0;
                //NewTobjPCMResultado.clientClass = "N";
                //NewTobjPCMResultado.clientStatus = "1";

                //NewTobjPCMResultado.customerType = "1";
                //NewTobjPCMResultado.debitCardNumber = 1;

                //NewTobjPCMResultado.idNumber = "0000000-0010-00000050";
                //NewTobjPCMResultado.idType = "PH";
                //NewTobjPCMResultado.legalName = "LEGAL GROUP PANAMA";

                //NewTobjPCMResultado.mainOfficer = "0001";
                //NewTobjPCMResultado.idType = "PH";

                //NewTobjPCMResultado.originCountry = "PA";
                //NewTobjPCMResultado.ownershipType = "1";
                //NewTobjPCMResultado.previsionTable = "";
                //NewTobjPCMResultado.residencyCountry = "PA";

                //NewTobjPCMResultado.shortName = "TEST CLIENT";
                //NewTobjPCMResultado.taxes = "1";

                //NewTobjPCMResultado.residentFlag = "1"; NewTobjPCMResultado.propertyType = "1";

                #endregion

                #region No Factible, ya que hay demasiadas propiedades, usar Extension Methods
                //objCCMImput.addressLine1 = informacionClienteJuridicoInput.addressLine1.IsNull();
                //objCCMImput.addressLine2 = informacionClienteJuridicoInput.addressLine2.IsNull();
                //objCCMImput.addressLine3 = informacionClienteJuridicoInput.addressLine3.IsNull();
                //objCCMImput.addressVerbalRef = informacionClienteJuridicoInput.addressVerbalRef.IsNull();
                //objCCMImput.appPending = informacionClienteJuridicoInput.appPending.IsNull();
                //objCCMImput.aptoOffice = informacionClienteJuridicoInput.aptoOffice.IsNull();
                //objCCMImput.automaticAppFlag = informacionClienteJuridicoInput.automaticAppFlag.IsNull();
                //objCCMImput.bankingType = informacionClienteJuridicoInput.bankingType.IsNull();
                //objCCMImput.building = informacionClienteJuridicoInput.building.IsNull();
                //objCCMImput.businessArea = informacionClienteJuridicoInput.businessArea.IsNull();
                //objCCMImput.businessCode = informacionClienteJuridicoInput.businessCode.IsNull();
                //objCCMImput.businessCodeDesc = informacionClienteJuridicoInput.businessCodeDesc.IsNull();
                //objCCMImput.businessTypeDesc = informacionClienteJuridicoInput.businessTypeDesc.IsNull();
                //objCCMImput.businessUnity = informacionClienteJuridicoInput.businessUnity.IsNull();
                //objCCMImput.capitalPaid = informacionClienteJuridicoInput.capitalPaid.ToDecimal();
                //objCCMImput.celularPhoneNumber = informacionClienteJuridicoInput.celularPhoneNumber.ToUlong();
                //objCCMImput.city = informacionClienteJuridicoInput.city.IsNull();
                //objCCMImput.classification = informacionClienteJuridicoInput.classification.IsNull();
                //objCCMImput.classificationDesc = informacionClienteJuridicoInput.classificationDesc.IsNull();
                //objCCMImput.classificationForm = informacionClienteJuridicoInput.classificationForm.IsNull();
                //objCCMImput.clientClass = informacionClienteJuridicoInput.clientClass.IsNull();
                //objCCMImput.clientOperativeType = informacionClienteJuridicoInput.clientOperativeType.IsNull();
                //objCCMImput.clientStatus = informacionClienteJuridicoInput.clientStatus.IsNull();
                //objCCMImput.companySize = informacionClienteJuridicoInput.companySize.IsNull();
                //objCCMImput.condominium = informacionClienteJuridicoInput.condominium.IsNull();
                //objCCMImput.correg = informacionClienteJuridicoInput.correg.IsNull();
                //objCCMImput.corregDesc = informacionClienteJuridicoInput.corregDesc.IsNull();
                //objCCMImput.country = informacionClienteJuridicoInput.country.IsNull();
                //objCCMImput.countryOfBirthDesc = informacionClienteJuridicoInput.countryOfBirthDesc.IsNull();
                //objCCMImput.customerNumber = "0".ToUlong();
                //objCCMImput.customerType = informacionClienteJuridicoInput.customerType.IsNull();
                //objCCMImput.debitCardNumber = informacionClienteJuridicoInput.debitCardNumber.ToInteger();
                //objCCMImput.discountCompanyDesc = informacionClienteJuridicoInput.discountCompanyDesc.IsNull();
                //objCCMImput.distrit = informacionClienteJuridicoInput.distrit.IsNull();
                //objCCMImput.distritDesc = informacionClienteJuridicoInput.distritDesc.IsNull();
                //objCCMImput.educationLevelDesc = informacionClienteJuridicoInput.educationLevelDesc.IsNull();
                //objCCMImput.email = informacionClienteJuridicoInput.email.IsNull();
                //objCCMImput.faxNumber = informacionClienteJuridicoInput.faxNumber.ToUlong();
                //objCCMImput.firstContact = informacionClienteJuridicoInput.firstContact.ToDateData();
                //objCCMImput.floorLevel = informacionClienteJuridicoInput.floorLevel.IsNull();
                //objCCMImput.folioNumber = informacionClienteJuridicoInput.folioNumber.IsNull();
                //objCCMImput.foundation = informacionClienteJuridicoInput.foundation.ToDateData();
                //objCCMImput.fourthIdCountry = informacionClienteJuridicoInput.fourthIdCountry.IsNull();
                //objCCMImput.fourthIdCountryDesc = informacionClienteJuridicoInput.fourthIdCountryDesc.IsNull();
                //objCCMImput.fourthIdNumber = informacionClienteJuridicoInput.fourthIdNumber.IsNull();
                //objCCMImput.fourthIdType = informacionClienteJuridicoInput.fourthIdType.IsNull();
                //objCCMImput.fourthIdTypeDesc = informacionClienteJuridicoInput.fourthIdTypeDesc.IsNull();
                //objCCMImput.groupNumber = informacionClienteJuridicoInput.groupNumber.IsNull();
                //objCCMImput.idCountry = informacionClienteJuridicoInput.idCountry.IsNull();
                //objCCMImput.idCountryDesc = informacionClienteJuridicoInput.idCountryDesc.IsNull();
                //objCCMImput.idNumber = informacionClienteJuridicoInput.idNumber.IsNull();
                //objCCMImput.idType = informacionClienteJuridicoInput.idType.IsNull();
                //objCCMImput.idTypeDesc = informacionClienteJuridicoInput.idTypeDesc.IsNull();
                //objCCMImput.incomeSource = informacionClienteJuridicoInput.incomeSource.IsNull();
                //objCCMImput.incomeSourceDesc = informacionClienteJuridicoInput.incomeSourceDesc.IsNull();
                //objCCMImput.industryCode = informacionClienteJuridicoInput.industryCode.IsNull();
                //objCCMImput.industryCodeDesc = informacionClienteJuridicoInput.industryCodeDesc.IsNull();
                //objCCMImput.initialCapital = informacionClienteJuridicoInput.initialCapital.ToDecimal();
                //objCCMImput.inquiryLevel = informacionClienteJuridicoInput.inquiryLevel.ToUlong();
                //objCCMImput.inscription = informacionClienteJuridicoInput.inscription.ToDateData();
                //objCCMImput.inscriptionNumber = informacionClienteJuridicoInput.inscriptionNumber;
                //objCCMImput.juridicalDistrict = informacionClienteJuridicoInput.juridicalDistrict.IsNull();
                //objCCMImput.languageIndicator = informacionClienteJuridicoInput.languageIndicator.IsNull();
                //objCCMImput.legalName = informacionClienteJuridicoInput.legalName.IsNull();
                //objCCMImput.mailingCode = informacionClienteJuridicoInput.mailingCode.IsNull();
                //objCCMImput.mailingCodeDesc = informacionClienteJuridicoInput.mailingCodeDesc.IsNull();
                //objCCMImput.mainOfficer = informacionClienteJuridicoInput.mainOfficer.IsNull();
                //objCCMImput.mainOfficerDesc = informacionClienteJuridicoInput.mainOfficerDesc.IsNull();
                //objCCMImput.moreRecords = informacionClienteJuridicoInput.moreRecords.IsNull();
                //objCCMImput.municipality = informacionClienteJuridicoInput.municipality.IsNull();
                //objCCMImput.municipalityDesc = informacionClienteJuridicoInput.municipalityDesc.IsNull();
                //objCCMImput.nacionalityDesc = informacionClienteJuridicoInput.nacionalityDesc.IsNull();
                //objCCMImput.nationality = informacionClienteJuridicoInput.nationality.IsNull();
                //objCCMImput.numberOfShears = informacionClienteJuridicoInput.numberOfShears.ToUlong();
                //objCCMImput.officePhoneNumber1 = informacionClienteJuridicoInput.officePhoneNumber1.ToUlong();
                //objCCMImput.officePhoneNumber2 = informacionClienteJuridicoInput.officePhoneNumber2.ToUlong();
                //objCCMImput.originCountry = informacionClienteJuridicoInput.originCountry.IsNull();
                //objCCMImput.ownershipType = informacionClienteJuridicoInput.ownershipType.IsNull();
                //objCCMImput.parish = informacionClienteJuridicoInput.parish.IsNull();
                //objCCMImput.parishDesc = informacionClienteJuridicoInput.parishDesc.IsNull();
                //objCCMImput.poBox = informacionClienteJuridicoInput.poBox.IsNull();
                //objCCMImput.portfolioType = informacionClienteJuridicoInput.portfolioType.IsNull();
                //objCCMImput.positionDesc = informacionClienteJuridicoInput.positionDesc.IsNull();
                //objCCMImput.previousName = informacionClienteJuridicoInput.previousName.IsNull();
                //objCCMImput.previsionTable = informacionClienteJuridicoInput.previsionTable.IsNull();
                //objCCMImput.propertyType = informacionClienteJuridicoInput.propertyType.IsNull();
                //objCCMImput.provinceDesc = objCCMImput.provinceDesc.IsNull();
                //objCCMImput.referBy = informacionClienteJuridicoInput.referBy.IsNull();
                //objCCMImput.referByDesc = informacionClienteJuridicoInput.referByDesc.IsNull();
                //objCCMImput.referByName = informacionClienteJuridicoInput.referByName.IsNull();
                //objCCMImput.reference = informacionClienteJuridicoInput.reference.IsNull();
                //objCCMImput.region = informacionClienteJuridicoInput.region.IsNull();
                //objCCMImput.registerNumber = informacionClienteJuridicoInput.registerNumber.IsNull();
                //objCCMImput.relation = informacionClienteJuridicoInput.relation.IsNull();
                //objCCMImput.relationDesc = informacionClienteJuridicoInput.relationDesc.IsNull();
                //objCCMImput.residencyCountry = informacionClienteJuridicoInput.residencyCountry.IsNull();
                //objCCMImput.residencyCountryDesc = informacionClienteJuridicoInput.residencyCountryDesc.IsNull();
                //objCCMImput.residentFlag = informacionClienteJuridicoInput.residentFlag.IsNull();
                //objCCMImput.riskCentral = informacionClienteJuridicoInput.riskCentral.IsNull();
                //objCCMImput.riskLevel = informacionClienteJuridicoInput.riskLevel.IsNull();
                //objCCMImput.riskLevelDesc = informacionClienteJuridicoInput.riskLevelDesc.IsNull();
                //objCCMImput.rollOverVolume = informacionClienteJuridicoInput.rollOverVolume.IsNull();
                //objCCMImput.salesLevel = informacionClienteJuridicoInput.salesLevel.IsNull();
                //objCCMImput.secondIdCountry = informacionClienteJuridicoInput.secondIdCountry.IsNull();
                //objCCMImput.secondIdCountryDesc = informacionClienteJuridicoInput.secondIdCountryDesc.IsNull();
                //objCCMImput.secondIdNumber = informacionClienteJuridicoInput.secondIdNumber.IsNull();
                //objCCMImput.secondIdType = informacionClienteJuridicoInput.secondIdType.IsNull();
                //objCCMImput.secondIdTypeDesc = informacionClienteJuridicoInput.secondIdTypeDesc.IsNull();
                //objCCMImput.secondOfficer = informacionClienteJuridicoInput.secondOfficer.IsNull();
                //objCCMImput.secondOfficerDesc = informacionClienteJuridicoInput.secondOfficerDesc.IsNull();
                //objCCMImput.shortName = informacionClienteJuridicoInput.shortName.IsNull();
                //objCCMImput.socioEconomicLevel = informacionClienteJuridicoInput.socioEconomicLevel.IsNull();
                //objCCMImput.specialInstructions = informacionClienteJuridicoInput.specialInstructions.ToStringValue();
                //objCCMImput.state = informacionClienteJuridicoInput.state.IsNull();
                //objCCMImput.stockHolders = informacionClienteJuridicoInput.stockHolders.ToUlong();
                //objCCMImput.street = informacionClienteJuridicoInput.street.IsNull();
                //objCCMImput.subscribedCapital = informacionClienteJuridicoInput.subscribedCapital.ToDecimal();
                //objCCMImput.taxes = informacionClienteJuridicoInput.taxes.IsNull();
                //objCCMImput.thirdIdCountry = informacionClienteJuridicoInput.thirdIdCountry.IsNull();
                //objCCMImput.thirdIdCountryDesc = informacionClienteJuridicoInput.thirdIdCountryDesc.IsNull();
                //objCCMImput.thirdIdNumber = informacionClienteJuridicoInput.thirdIdNumber.IsNull();
                //objCCMImput.thirdIdType = informacionClienteJuridicoInput.thirdIdType.IsNull();
                //objCCMImput.thirdIdTypeDesc = informacionClienteJuridicoInput.thirdIdTypeDesc.IsNull();
                //objCCMImput.typeOfCorresBank = informacionClienteJuridicoInput.typeOfCorresBank.IsNull();
                //objCCMImput.user = informacionClienteJuridicoInput.user.IsNull();
                //objCCMImput.userCode6Desc = informacionClienteJuridicoInput.userCode6Desc.IsNull();
                //objCCMImput.userCode9Desc = informacionClienteJuridicoInput.userCode9Desc.IsNull();
                //objCCMImput.volumeNumber = informacionClienteJuridicoInput.volumeNumber.IsNull();
                //objCCMImput.yearsBusiness = informacionClienteJuridicoInput.yearsBusiness.ToInteger();
                //objCCMImput.zipCode = informacionClienteJuridicoInput.zipCode.IsNull();

                #endregion


                //var result = objCustomerServices.newCorporateCustomer(NewTobjPCMResultado);
                //result.ParseMessageTo(informacionClienteJuridicoOutput);
                informacionClienteJuridicoInput.ParseMessageTo(objCCMImput);
                var result = objCustomerServices.newCorporateCustomer(objCCMImput);
                result.ParseMessageTo(informacionClienteJuridicoOutput);
            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        [WebMethod(Description = "Agrega una cuenta bancaria a los clientes existentes", MessageName = "AgregarNuevaCuentaBancaria")]
        //public Mensaje AgregarNuevaCuenta()
        public Mensaje AgregarNuevaCuenta(AccountServicesIntegration integracionAccountServicesInput, ref AccountServicesIntegration integracionAccountServicesOutput)
        {
            Mensaje retMensaje = new Mensaje();

            #region Default Test Objects
            //AccountServicesIntegration integracionAccountServicesInput = new AccountServicesIntegration();
            //AccountServicesIntegration integracionAccountServicesOutput = new AccountServicesIntegration();

            #endregion

            WSIntegracionCoreBancario.AccountService.AccountService objAccount = new WSIntegracionCoreBancario.AccountService.AccountService();
            WSIntegracionCoreBancario.AccountService.AccountsMessage objInput = new WSIntegracionCoreBancario.AccountService.AccountsMessage();
            WSIntegracionCoreBancario.AccountService.AccountsMessage objOutput = new WSIntegracionCoreBancario.AccountService.AccountsMessage();
            try
            {

                #region TEST Creacion de Mensaje
                //integracionAccountServicesInput.user = "datapro";//"user"
                //integracionAccountServicesInput.accountNumber = "0";
                //integracionAccountServicesInput.customerNumber = "600002107";
                //integracionAccountServicesInput.customerId = "";
                //integracionAccountServicesInput.productCode = "PN90";
                //integracionAccountServicesInput.bank = "01";
                //integracionAccountServicesInput.currency = "USD";
                //integracionAccountServicesInput.branch = "1";
                //integracionAccountServicesInput.glAccount = "";
                //integracionAccountServicesInput.customerName = "";
                //integracionAccountServicesInput.accountType = "CAHO";
                //integracionAccountServicesInput.accountTypeDesc = "";
                //integracionAccountServicesInput.productCodeDesc = "";
                //integracionAccountServicesInput.appCode = "";
                //integracionAccountServicesInput.officialCode = "0001";
                //integracionAccountServicesInput.costCenter = "10101010";
                //integracionAccountServicesInput.openingDate = "";
                //integracionAccountServicesInput.tariffTable = "";
                //integracionAccountServicesInput.userCode1 = "";
                //integracionAccountServicesInput.userCode2 = "";
                //integracionAccountServicesInput.userCode3 = "";
                //integracionAccountServicesInput.userCode4 = "";
                //integracionAccountServicesInput.taxesWitholdingFlag = "4";
                //integracionAccountServicesInput.checkingType = "";
                //integracionAccountServicesInput.minimumCheckingStock = "";
                //integracionAccountServicesInput.serviceChargesFlag = "";
                //integracionAccountServicesInput.overdraftsChargesFlag = "";
                //integracionAccountServicesInput.overdraftFrecuency = "";
                //integracionAccountServicesInput.chargesPaymentDay = "";
                //integracionAccountServicesInput.accountStatementRetentionFlag = "";
                //integracionAccountServicesInput.accountStatementFrecuency = "";
                //integracionAccountServicesInput.accountStatementPrintingDay = "";
                //integracionAccountServicesInput.accountStatementType = "";
                //integracionAccountServicesInput.consolidatedStatementFlag = "";
                //integracionAccountServicesInput.dailyStatementAccountVia = "";
                //integracionAccountServicesInput.clientLinMultiuse = "";
                //integracionAccountServicesInput.clientLinNumber = "";
                //integracionAccountServicesInput.sendingChannel = "";
                //integracionAccountServicesInput.personalizationCheck1 = "";
                //integracionAccountServicesInput.personalizationCheck2 = "";
                //integracionAccountServicesInput.checkingChargesFlag = "";
                //integracionAccountServicesInput.checkingChargesRestriction = "";
                //integracionAccountServicesInput.interestPaymentFlag = "";
                //integracionAccountServicesInput.accountStatus = "";
                //integracionAccountServicesInput.mailingAddress = "";

                //integracionAccountServicesInput.creditLineType = "";



                //integracionAccountServicesInput.balanceUsedForOverdraft = "";
                //integracionAccountServicesInput.limitValueOverdraft1 = "0";
                //integracionAccountServicesInput.overrateForOverdraft1 = "0";
                //integracionAccountServicesInput.limitValueOverdraft2 = "0";
                //integracionAccountServicesInput.overrateForOverdraft2 = "0";
                //integracionAccountServicesInput.relatedGlAccountBank = "0";
                //integracionAccountServicesInput.relatedGlAccountBranch = "0";
                //integracionAccountServicesInput.relatedGlAccountCurrency = "";
                //integracionAccountServicesInput.relatedGlAccount = "0";
                //integracionAccountServicesInput.relatedDetailAccount = "0";
                //integracionAccountServicesInput.relatedProduct = "";

                //integracionAccountServicesInput.creditLineNumber = "0";
                //integracionAccountServicesInput.creditLineLimit = "0";
                //integracionAccountServicesInput.creditLineRevisionDate = "";
                //integracionAccountServicesInput.personalizedNameForCheckbook = "";
                //integracionAccountServicesInput.personalizedNameRelation = "";
                //integracionAccountServicesInput.personalizedNameForCheckbook2 = "";
                //integracionAccountServicesInput.checkbookType = "";
                //integracionAccountServicesInput.checkbookDeliveryRestrictionsFlag = "";
                //integracionAccountServicesInput.specialInstructions = new string[] {  };
                //integracionAccountServicesInput.ParseMessageTo(objInput);

                #endregion
                integracionAccountServicesInput.ParseMessageTo(objInput);
                var result = objAccount.newAccount(objInput);
                result.ParseMessageTo(integracionAccountServicesOutput);
            }
            catch (Exception ex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        //user , customernumber , entity
        [WebMethod]
        public Mensaje AgregarAdditionalInformation(string user, string customerNumber, List<AdditionalInformation> AdditionalInfos)
        {
            Mensaje retMensaje = new Mensaje();
            try
            {
                CustomerDetailsMessage msgInput = new CustomerDetailsMessage();
                WSIntegracionCoreBancario.CustomerService.CustomerService objCustomerServices = new WSIntegracionCoreBancario.CustomerService.CustomerService();
                CustomerDetails custDest = new CustomerDetails();
                custDest.user = user;
                custDest.referenceNumber =customerNumber;
                List<CustomerDetailsMessage> finalDetailMsg = new List<CustomerDetailsMessage>();
                foreach (var item in AdditionalInfos)
                {
                    item.ParseMessageTo(msgInput);
                    msgInput.customerNumber = customerNumber.ToUlong();
                    msgInput.relatedCustomer = "0".ToUlong();
                    finalDetailMsg.Add(msgInput);
                }
                custDest.entity = finalDetailMsg.ToArray();
                var result = objCustomerServices.customerAdditionalInformation(custDest);
                var resultXML = Serialize<CustomerDetails>(custDest);
                //var resultXML = Serialize<CustomerDetailsMessage[]>(custDest.entity);
            }
            catch (Exception ex)
            {

                retMensaje.Status = Mensaje.EnumStatus.ERRORGENERAL;
                retMensaje.Error = ex.Message.ToString();
                retMensaje.MensajeTecnico = ex.Message;
            }
            return retMensaje;
        }

        public static XDocument Serialize<X>(X para)
        {
            XmlSerializer xmlSerial = new XmlSerializer(typeof(X));
            XDocument xDoc = new XDocument();
            using (var Writer = xDoc.CreateWriter())
            {
                xmlSerial.Serialize(Writer, para);
            }
            return xDoc;
        }

        #endregion
    }
    #region Extension Util Methods

    public static class Extension
    {
        public static T To<T>(this object value)
        {
            switch (Type.GetTypeCode(typeof(T)))
            {
                case TypeCode.Boolean:
                    return (T)(object)Convert.ToBoolean(value);
                case TypeCode.Byte:
                    return (T)(object)Convert.ToByte(value);
                case TypeCode.Char:
                    return (T)(object)Convert.ToChar(value);
                case TypeCode.DateTime:
                    return (T)(object)Convert.ToDateTime(value);
                case TypeCode.Decimal:
                    return (T)(object)Convert.ToDecimal(value);
                case TypeCode.Double:
                    return (T)(object)Convert.ToDouble(value);
                case TypeCode.Int16:
                    return (T)(object)Convert.ToInt16(value);
                case TypeCode.Int32:
                    return (T)(object)Convert.ToInt32(value);
                case TypeCode.Int64:
                    return (T)(object)Convert.ToInt64(value);
                case TypeCode.Object:
                    return (T)value;
                case TypeCode.SByte:
                    return (T)(object)Convert.ToSByte(value);
                case TypeCode.Single:
                    return (T)(object)Convert.ToSingle(value);
                case TypeCode.String:
                    return (T)(object)Convert.ToString(value);
                case TypeCode.UInt16:
                    return (T)(object)Convert.ToUInt16(value);
                case TypeCode.UInt32:
                    return (T)(object)Convert.ToUInt32(value);
                case TypeCode.UInt64:
                    return (T)(object)Convert.ToUInt64(value);
                case TypeCode.DBNull:
                case TypeCode.Empty:
                default:
                    throw new ApplicationException("Unsupported type");
            }
        }

        public static DateData ToDateData(this string valor)
        {
            DateData objData = new DateData();
            try
            {
                DateTime date = DateTime.Parse(valor);

                objData.day = date.Day.ToString().ToUlong();
                objData.month = date.Month.ToString().ToUlong();
                objData.year = date.Year.ToString().ToUlong();
            }
            catch (Exception)
            {

                throw;
            }

            return objData;
        }

        public static DateData ToDateData(this object valor)
        {
            DateData objData = new DateData();
            try
            {
                DateTime date = DateTime.Parse(valor.ToString());

                objData.day = date.Day.ToString().ToUlong();
                objData.month = date.Month.ToString().ToUlong();
                objData.year = date.Year.ToString().ToUlong();
            }
            catch (Exception ex)
            {

                throw;
            }

            return objData;
        }

        public static string ToStringDateData(this DateData value)
        {
            //string resultdate = string.Empty;
            return (value.month + value.month + value.day).ToString();
        }

        public static ulong ToUlong(this string valor)
        {
            ulong tryTo = 0;
            bool isValid = ulong.TryParse(valor, out tryTo);
            return tryTo;
        }

        public static string IsNull(this string valor)
        {
            if (string.IsNullOrEmpty(valor))
                valor = string.Empty;
            return valor;
        }

        public static string IsNullObject(this object valor)
        {
            string valueresult = string.Empty;
            try
            {
                if (!string.IsNullOrEmpty(valor.ToString()))
                    valueresult = valor.ToString();
                else
                    valueresult = string.Empty;
            }
            catch (Exception)
            {
                valueresult = string.Empty;
            }

            return valueresult;
        }

        public static string[] ToStringValue(this string value)
        {
            string[] valueOutput = { };
            //value.ToList().ForEach(c => valueOutput = c + ";");
            return valueOutput;
        }

        public static decimal ToDecimal(this string value)
        {
            decimal tryTo = 0;
            bool isValid = decimal.TryParse(value, out tryTo);
            return tryTo;
        }

        public static int? ToInteger(this object value)
        {
            int tryTo = 0;
            bool isValid = int.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }
        public static Int32? ToInteger32(this object value)
        {
            Int32 tryTo = 0;
            bool isValid = int.TryParse(value.IsNullObject().ToString(), out tryTo);
            return tryTo;
        }
        public static Int64? ToInteger64(this object value)
        {
            Int64 tryTo = 0;
            bool isValid = Int64.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }
        public static Int16? ToInteger16(this object value)
        {
            Int16 tryTo = 0;
            bool isValid = Int16.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static UInt64? ToUIn64(this object value)
        {
            UInt64 tryTo = 0;
            bool isValid = UInt64.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static UInt32? ToUIn32(this object value)
        {
            UInt32 tryTo = 0;
            bool isValid = UInt32.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static UInt16? ToUIn16(this object value)
        {
            UInt16 tryTo = 0;
            bool isValid = UInt16.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static long? ToLong(this object value)
        {
            long tryTo = 0;
            bool isValid = long.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static float? ToFLoat(this object value)
        {
            float tryTo = 0;
            bool isValid = float.TryParse(value.ToString(), out tryTo);
            return tryTo;
        }

        public static List<T> Create<T, U>(IEnumerable<U> values, Func<U, T> mapFunc)
        {
            return values.Select(v => mapFunc(v)).ToList();
        }

        public static void ParseMessage(this object to, object from, string[] excludedProperties)
        {
            Type targetType = to.GetType();
            Type sourceType = from.GetType();

            PropertyInfo[] sourceProps = sourceType.GetProperties();
            foreach (var propInfo in sourceProps)
            {
                if (excludedProperties != null && excludedProperties.Contains(propInfo.Name))
                    continue;
                PropertyInfo toProp = (targetType == sourceType) ? propInfo : targetType.GetProperty(propInfo.Name);

                if (toProp != null && toProp.CanWrite)
                {
                    Object value = propInfo.GetValue(from, null);
                    string columnType = null;
                    try
                    {
                        if (toProp.PropertyType.IsGenericType && toProp.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
                        {
                            columnType = toProp.PropertyType.GetGenericArguments()[0].Name;
                            toProp.SetValue(to, value.UndefinedTo(columnType), null);
                        }
                        else
                        {
                            columnType = toProp.PropertyType.Name;
                            toProp.SetValue(to, value.UndefinedTo(columnType), null);
                        }
                    }
                    catch (Exception ex)
                    {

                        throw ex;
                    }

                }
            }
        }

        public static object UndefinedTo(this object value, string tipo)
        {
            switch (tipo)
            {
                case "String":
                    value = value.IsNullObject();
                    break;
                case "Int32":
                    value = value.ToInteger32();
                    break;
                case "Int64":
                    value = value.ToInteger64();
                    break;
                case "Single":
                    value = value.To<Single>();
                    break;
                case "Decimal":
                    value = value.IsNullObject().ToDecimal().To<Decimal>();
                    break;
                case "UInt64":
                    value = value.IsNullObject().ToUIn64().To<UInt64>();
                    break;
                case "UInt16":
                    value = value.IsNullObject().ToUIn16().To<UInt16>();
                    break;
                case "UInt32":
                    value = value.IsNullObject().ToUIn32().To<UInt32>();
                    break;
                case "String[]":
                    value = value.IsNullObject().ToStringValue();
                    break;
                case "DateData":
                    value = value.ToDateData();
                    break;
                default:
                    break;
            }
            return value;
        }

        public static void ParseMessageFrom(this object to, object from)
        {
            to.ParseMessage(from, null);
        }

        public static void ParseMessageTo(this object from, object to)
        {
            to.ParseMessage(from, null);
        }

        public static List<T> ToAddList<T>(this List<T> list, T Item)
        {
            list.Add(Item);
            return list;
        }

        public static void copyPropertiesTo(this object from, object to, string[] excludedProperties)
        {
            to.ParseMessage(from, excludedProperties);
        }
    }

    #endregion
}
